Just as I get my problem with screen size fixed, another one creeps in and
messes with me.
If I create any UI object, a button, a label, whatever, and place it on the
main window, it automatically scales up to fill the entire window. The killer
here is that the objects are ignoring explicit sizing commands
(gtk_widget_set_usize).
Anyone have any suggestions here?
Here is the test code I am working with.
Thanks!
Ron Gage - Westland, MI
#include <string.h>
#include <gtk/gtk.h>
static void hello (GtkWidget *widget, gpointer data)
{
g_print ("Hello World.\n");
}
static gboolean delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
{
g_print ("delete event occurred.\n");
return TRUE;
}
static void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
GtkWidget *dfblabel(char *text, int pos_x, int pos_y, int size_x, int size_y,
GdkColor *bg, GdkColor *fg)
{
GtkWidget *label;
label = gtk_label_new (text);
gtk_label_set_line_wrap (GTK_LABEL(label), TRUE);
gtk_widget_set_uposition(GTK_WIDGET(label), pos_x, pos_y);
gtk_widget_set_usize(GTK_WIDGET(label), size_x, size_y);
if (bg != NULL)
gtk_widget_modify_bg(GTK_WIDGET(label), GTK_STATE_NORMAL, bg);
if (fg != NULL)
gtk_widget_modify_fg(GTK_WIDGET(label), GTK_STATE_NORMAL, fg);
return label;
}
int main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *button;
GdkColor black,white,blue;
GtkWidget *label;
gtk_init (&argc, &argv);
gdk_color_parse("Black",&black);
gdk_color_parse("White",&white);
gdk_color_parse("Blue",&blue);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_resizable(GTK_WINDOW(window),TRUE);
gtk_widget_set_size_request(window, 1024,768);
//gtk_window_maximize(GTK_WINDOW(window));
//gtk_window_fullscreen(GTK_WINDOW(window));
g_signal_connect (G_OBJECT(window), "delete_event", G_CALLBACK(delete_event),
NULL);
g_signal_connect (G_OBJECT(window), "destroy",G_CALLBACK(destroy), NULL);
//gtk_container_set_border_width (GTK_CONTAINER(window),10);
gtk_widget_modify_bg(GTK_WIDGET(window), GTK_STATE_NORMAL, &blue);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_widget_set_usize(GTK_WIDGET(window),1024,768);
label = dfblabel("Test label",4,10,20,100,&black,&white);
button = gtk_button_new_with_label ("Test button");
gtk_widget_set_usize(GTK_WIDGET(button),.01,.02);
//gtk_widget_set_uposition(GTK_WIDGET(button),200,200);
g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(hello), NULL);
g_signal_connect_swapped (G_OBJECT(button), "clicked",
G_CALLBACK(gtk_widget_destroy), G_OBJECT(window));
//gtk_container_add (GTK_CONTAINER(window),button);
gtk_container_add (GTK_CONTAINER(window),label);
gtk_widget_show_all(window);
gtk_main();
return(0);
}
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev