//! Redraws the exposed area of the board gboolean board_redraw (GtkWidget *widget, GdkEventExpose *event) { int x, y; int xmin = 0, ymin = 0, xmax = board_wid, ymax = board_heit; if (!opt_game) { GdkPixmap *splash_pixmap; splash_pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, gdk_colormap_get_system (), NULL, NULL, splash_xpm); gdk_draw_pixmap ((GdkDrawable *)board_area->window, board_area->style->bg_gc[GTK_STATE_NORMAL], (GdkDrawable *)splash_pixmap, 0, 0, 0, 0, -1, -1); gdk_pixmap_unref (splash_pixmap); return TRUE; } if (event) { xmin = event->area.x / cell_size; ymin = event->area.y / cell_size; xmax = (event->area.x + event->area.width) / cell_size + 1; ymax = (event->area.y + event->area.height) / cell_size + 1; if (ymin < 0) ymin = 0; if (xmax > board_wid) xmax = board_wid; if (ymax > board_heit) ymax = board_heit; } for (x=xmin; x<xmax; x++) for (y=ymin; y<ymax; y++) board_refresh_cell_real ( state_board_flipped ? board_wid - 1 - x : x, state_board_flipped ? y : (board_heit - 1 - y), x, y); return TRUE; }
/* * CreateWidgetFromXpm * * Using the window information and the string with the icon color/data, * create a widget that represents the data. Once done, this widget can * be added to buttons or other container widgets. */ GtkWidget *CreateWidgetFromXpm (GtkWidget *window, gchar **xpm_data) { // got this code from Xmps GdkColormap *colormap; GdkPixmap *gdkpixmap; GdkBitmap *mask; GtkWidget *pixmap; colormap = gtk_widget_get_colormap(window); gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, NULL, xpm_data); if (gdkpixmap == NULL) { printf("Error\n"); return (NULL); } #ifdef HAVE_GTK_2_0 pixmap = gtk_image_new_from_pixmap(gdkpixmap, mask); #else pixmap = gtk_pixmap_new (gdkpixmap, mask); gdk_pixmap_unref (gdkpixmap); gdk_bitmap_unref (mask); #endif gtk_widget_show(pixmap); return pixmap; }
void create_about_dialog(void) { char work[256]; GtkWidget *about_dialog; GtkWidget *main_widget; GtkWidget *ver_label; GtkWidget *ok_button; GtkWidget *neko_image; GdkColormap *colormap; GdkPixmap *neko_pixmap; GdkBitmap *mask; uninstall_idle_process(); about_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(about_dialog), "About Neko Project II"); gtk_window_set_position(GTK_WINDOW(about_dialog), GTK_WIN_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(about_dialog), TRUE); gtk_window_set_resizable(GTK_WINDOW(about_dialog), FALSE); gtk_container_set_border_width(GTK_CONTAINER(about_dialog), 10); g_signal_connect(GTK_OBJECT(about_dialog), "destroy", GTK_SIGNAL_FUNC(about_destroy), NULL); main_widget = gtk_hbox_new(FALSE, 3); gtk_widget_show(main_widget); gtk_container_add(GTK_CONTAINER(about_dialog), main_widget); colormap = gtk_widget_get_colormap(about_dialog); neko_pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &mask, NULL, (gchar **)np2_icon); if (neko_pixmap == NULL) g_error("Couldn't create replacement pixmap."); neko_image = gtk_image_new_from_pixmap(neko_pixmap, mask); g_object_unref(neko_pixmap); g_object_unref(mask); gtk_widget_show(neko_image); gtk_box_pack_start(GTK_BOX(main_widget), neko_image, FALSE, FALSE, 10); milstr_ncpy(work, "Neko Project II\n", sizeof(work)); milstr_ncat(work, NP2VER_CORE, sizeof(work)); #if defined(NP2VER_X11) milstr_ncat(work, NP2VER_X11, sizeof(work)); #endif ver_label = gtk_label_new(work); gtk_widget_show(ver_label); gtk_box_pack_start(GTK_BOX(main_widget), ver_label, FALSE, FALSE, 10); ok_button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_widget_show(ok_button); gtk_box_pack_end(GTK_BOX(main_widget), ok_button, FALSE, TRUE, 0); g_signal_connect_swapped(GTK_OBJECT(ok_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(about_dialog)); GTK_WIDGET_SET_FLAGS(ok_button, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(ok_button, GTK_HAS_DEFAULT); gtk_widget_grab_default(ok_button); gtk_widget_show_all(about_dialog); }
int clip_GTK_EXTEXTSETLINEPIXMAPFROMXPM(ClipMachine * cm) { C_widget *extext = _fetch_cw_arg(cm); gint line = _clip_parni(cm, 2); ClipVar *cxpmd = _clip_par(cm, 3); GdkBitmap *mask; GdkPixmap *pixmap; GdkWindow *win = NULL; GdkColormap *colormap = NULL; char * * xpm_data = NULL; unsigned short i; CHECKCWID(extext, GTK_IS_EXTEXT); CHECKOPT(2, NUMERIC_t); CHECKOPT(3, ARRAY_t); if (_clip_parinfo(cm, 2) != NUMERIC_t) line = GTK_EXTEXT(extext->widget)->line_number; else line --; //printf("\nextext %d\n extext->widget %d\n extext->widget->window %d\n" , (extext->parent ), (extext->parent->widget), (extext->parent->widget->window)); //if (extext && extext->widget && extext->widget->window) //{ win = extext->widget->window; colormap = gtk_widget_get_colormap(extext->widget); // printf("\n win & colormap\n"); //} //else // colormap = gdk_colormap_get_system(); if (cxpmd->a.count > 0) { ClipVar *item; xpm_data = (char * *)calloc(sizeof(char*),cxpmd->a.count); for (i = 0; i < cxpmd->a.count; i++) { item = cxpmd->a.items + i; if (item->t.type == CHARACTER_t) { xpm_data[i] = (char*)calloc(1,item->s.str.len+1); strcpy(xpm_data[i], item->s.str.buf); //printf("xpm_data[i]=%s\n", xpm_data[i]); } } } pixmap = gdk_pixmap_colormap_create_from_xpm_d(win, colormap, &mask, NULL, xpm_data); gtk_extext_set_line_pixmap(GTK_EXTEXT(extext->widget), line, pixmap, mask); return 0; err: return 1; }
/* * set up for drag & drop. */ void dnd_init(GtkWidget *window) { static GtkWidget *drag_icon = NULL; static GtkWidget *drop_icon = NULL; if(!drag_icon_pixmap) drag_icon_pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, gtk_widget_get_colormap(GTK_WIDGET(window)), &drag_mask_pixmap, NULL, wave_drag_ok_xpm); }
static void button_set_image_xpm(GtkWidget *button, char **xpm) /* Creates a button with an XPM icon */ { GdkPixmap *pixmap; GdkBitmap *mask; GtkWidget *image; pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, gdk_colormap_get_system(), &mask, NULL, xpm); image = gtk_image_new_from_pixmap(pixmap, mask); g_object_unref(pixmap); gtk_button_set_image(GTK_BUTTON(button), image); }
GtkWidget* Installer::GetTitaniumIcon() { GdkColormap* colormap = gtk_widget_get_colormap(this->window); GdkBitmap *mask = NULL; GdkPixmap* pixmap = gdk_pixmap_colormap_create_from_xpm_d( NULL, colormap, &mask, NULL, (gchar**) titanium_xpm); return gtk_image_new_from_pixmap(pixmap, mask); }
static VALUE gdkpmap_colormap_create_from_xpm_d(VALUE self, VALUE win, VALUE colormap, VALUE tcolor, VALUE data) { GdkPixmap *result; GdkBitmap *mask; const gchar **buf = RVAL2STRV(data); result = gdk_pixmap_colormap_create_from_xpm_d(NIL_P(win) ? NULL : GDK_WINDOW(RVAL2GOBJ(win)), GDK_COLORMAP(RVAL2GOBJ(colormap)), &mask, RVAL2GDKCOLOR(tcolor), (gchar **)buf); return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask)); }
static GtkWidget * create_pixmap (GtkWidget *w, const char **data) { GtkWidget *pixmap; GdkColormap *colormap; GdkPixmap *gdkpixmap; GdkBitmap *mask; colormap = gtk_widget_get_colormap (w); gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, NULL, const_cast<gchar **>(data)); pixmap = gtk_image_new_from_pixmap (gdkpixmap, mask); gdk_pixmap_unref (gdkpixmap); gdk_bitmap_unref (mask); return pixmap; }
/* This is an internally used function to create pixmaps. */ static GtkWidget* create_dummy_pixmap (GtkWidget *widget) { GdkColormap *colormap; GdkPixmap *gdkpixmap; GdkBitmap *mask; GtkWidget *pixmap; colormap = gtk_widget_get_colormap (widget); gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, NULL, dummy_pixmap_xpm); if (gdkpixmap == NULL) g_error ("Couldn't create replacement pixmap."); pixmap = gtk_pixmap_new (gdkpixmap, mask); gdk_pixmap_unref (gdkpixmap); gdk_bitmap_unref (mask); return pixmap; }
struct pixmap* get_pixmap_for_country_with_fallback(int id) { struct pixmap* pix = get_pixmap_for_country(id); if (pix) return pix; if (!flags || flags[0].pix == GINT_TO_POINTER(-1)) return NULL; if (!flags[0].pix) { flags[0].pix = gdk_pixmap_colormap_create_from_xpm_d(NULL, gdk_colormap_get_system(), &flags[0].mask, NULL, noflag_xpm); if (!flags[0].pix) flags[0].pix = GINT_TO_POINTER(-1); } return &flags[0]; }
CAMLprim value ml_gdk_pixmap_colormap_create_from_xpm_d (value window, value colormap, value transparent, char **data) { CAMLparam0(); GdkPixmap *pixmap; GdkBitmap *mask = NULL; CAMLlocal2(vpixmap, vmask); value ret; pixmap = gdk_pixmap_colormap_create_from_xpm_d (Option_val(window,GdkWindow_val,NULL), Option_val(colormap,GdkColormap_val,NULL), &mask, Option_val(transparent,GdkColor_val,NULL), data); if (!pixmap) ml_raise_gdk ("Gdk.Pixmap.create_from_xpm_data"); vpixmap = Val_GdkPixmap_no_ref (pixmap); vmask = Val_GdkBitmap_no_ref (mask); ret = alloc_small (2, 0); Field(ret,0) = vpixmap; Field(ret,1) = vmask; CAMLreturn(ret); }
GtkWidget * create_FileSelect( void ) { GtkWidget * vbox4; GtkWidget * hbox4; GtkWidget * vseparator1; GtkWidget * hbox6; GtkWidget * fsFNameListWindow; GtkWidget * hbuttonbox3; GtkWidget * uppixmapwid; GdkPixmap * uppixmap; GdkBitmap * upmask; GtkStyle * upstyle; fsFileSelect=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_widget_set_name( fsFileSelect,"fsFileSelect" ); gtk_object_set_data( GTK_OBJECT( fsFileSelect ),"fsFileSelect",fsFileSelect ); gtk_widget_set_usize( fsFileSelect,512,300 ); GTK_WIDGET_SET_FLAGS( fsFileSelect,GTK_CAN_DEFAULT ); gtk_widget_set_events( fsFileSelect,GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK ); gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_FileSelect ); gtk_window_set_position( GTK_WINDOW( fsFileSelect ),GTK_WIN_POS_CENTER ); gtk_window_set_policy( GTK_WINDOW( fsFileSelect ),TRUE,TRUE,TRUE ); gtk_window_set_wmclass( GTK_WINDOW( fsFileSelect ),"FileSelect","MPlayer" ); fsColorMap=gdk_colormap_get_system(); gtk_widget_realize( fsFileSelect ); gtkAddIcon( fsFileSelect ); style=gtk_widget_get_style( fsFileSelect ); dpixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&dmask,&style->bg[GTK_STATE_NORMAL],(gchar **)dir_xpm ); fpixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&fmask,&style->bg[GTK_STATE_NORMAL],(gchar **)file_xpm ); vbox4=AddVBox( AddDialogFrame( fsFileSelect ),0 ); hbox4=AddHBox( vbox4,1 ); fsCombo4=gtk_combo_new(); gtk_widget_set_name( fsCombo4,"fsCombo4" ); gtk_widget_show( fsCombo4 ); gtk_box_pack_start( GTK_BOX( hbox4 ),fsCombo4,TRUE,TRUE,0 ); gtk_widget_set_usize( fsCombo4,-2,20 ); fsPathCombo=GTK_COMBO( fsCombo4 )->entry; gtk_widget_set_name( fsPathCombo,"fsPathCombo" ); gtk_widget_show( fsPathCombo ); gtk_widget_set_usize( fsPathCombo,-2,20 ); vseparator1=gtk_vseparator_new(); gtk_widget_set_name( vseparator1,"vseparator1" ); gtk_widget_show( vseparator1 ); gtk_box_pack_start( GTK_BOX( hbox4 ),vseparator1,FALSE,TRUE,0 ); gtk_widget_set_usize( vseparator1,7,20 ); upstyle=gtk_widget_get_style( fsFileSelect ); uppixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&upmask,&upstyle->bg[GTK_STATE_NORMAL],(gchar **)up_xpm ); uppixmapwid=gtk_pixmap_new( uppixmap,upmask ); gtk_widget_show( uppixmapwid ); fsUp=gtk_button_new(); gtk_container_add( GTK_CONTAINER(fsUp ),uppixmapwid ); gtk_widget_show( fsUp ); gtk_box_pack_start( GTK_BOX( hbox4 ),fsUp,FALSE,FALSE,0 ); gtk_widget_set_usize( fsUp,65,15 ); AddHSeparator( vbox4 ); hbox6=AddHBox( NULL,0 ); gtk_box_pack_start( GTK_BOX( vbox4 ),hbox6,TRUE,TRUE,0 ); fsFNameListWindow=gtk_scrolled_window_new( NULL,NULL ); gtk_widget_set_name( fsFNameListWindow,"fsFNameListWindow" ); gtk_widget_show( fsFNameListWindow ); gtk_box_pack_start( GTK_BOX( hbox6 ),fsFNameListWindow,TRUE,TRUE,0 ); gtk_widget_set_usize( fsFNameListWindow,-2,145 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( fsFNameListWindow ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC ); fsFNameList=gtk_clist_new( 2 ); gtk_widget_set_name( fsFNameList,"fsFNameList" ); gtk_container_add( GTK_CONTAINER( fsFNameListWindow ),fsFNameList ); gtk_clist_set_column_width( GTK_CLIST( fsFNameList ),0,80 ); gtk_clist_set_selection_mode( GTK_CLIST( fsFNameList ),GTK_SELECTION_BROWSE ); gtk_clist_column_titles_hide( GTK_CLIST( fsFNameList ) ); gtk_clist_set_shadow_type( GTK_CLIST( fsFNameList ),GTK_SHADOW_ETCHED_OUT ); AddHSeparator( vbox4 ); List=gtk_combo_new(); gtk_widget_set_name( List,"List" ); gtk_widget_ref( List ); gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"List",List,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( List ); gtk_box_pack_start( GTK_BOX( vbox4 ),List,FALSE,FALSE,0 ); gtk_widget_set_usize( List,-2,20 ); fsFilterCombo=GTK_COMBO( List )->entry; gtk_widget_set_name( fsFilterCombo,"fsFilterCombo" ); gtk_widget_show( fsFilterCombo ); gtk_entry_set_editable (GTK_ENTRY( fsFilterCombo ),FALSE ); AddHSeparator( vbox4 ); hbuttonbox3=AddHButtonBox( vbox4 ); gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox3 ),GTK_BUTTONBOX_END ); gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox3 ),10 ); fsOk=AddButton( MSGTR_Ok,hbuttonbox3 ); fsCancel=AddButton( MSGTR_Cancel,hbuttonbox3 ); gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&fsFileSelect ); gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"key_release_event",GTK_SIGNAL_FUNC( on_FileSelect_key_release_event ),NULL ); gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsFilterCombo_changed ),fsFilterCombo ); gtk_signal_connect( GTK_OBJECT( fsFilterCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsFilterCombo_activate ),fsFilterCombo ); gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"changed",GTK_SIGNAL_FUNC( fs_fsPathCombo_changed ),fsPathCombo ); gtk_signal_connect( GTK_OBJECT( fsPathCombo ),"activate",GTK_SIGNAL_FUNC( fs_fsPathCombo_activate ),fsPathCombo ); gtk_signal_connect( GTK_OBJECT( fsUp ),"released",GTK_SIGNAL_FUNC( fs_Up_released ),fsFNameList ); gtk_signal_connect( GTK_OBJECT( fsOk ),"released",GTK_SIGNAL_FUNC( fs_Ok_released ),fsCombo4 ); gtk_signal_connect( GTK_OBJECT( fsCancel ),"released",GTK_SIGNAL_FUNC( fs_Cancel_released ),NULL ); gtk_signal_connect( GTK_OBJECT( fsFNameList ),"select_row",(GtkSignalFunc)fs_fsFNameList_select_row,NULL ); gtk_widget_grab_focus( fsFNameList ); return fsFileSelect; }
int main(int argc, char *argv[]) { GtkWidget *box; GdkPixmap *pixmap; GdkBitmap *mask; GdkColormap *colormap; gint type; gtk_init(&argc, &argv); colormap = gdk_colormap_get_system(); filesel=gtk_icon_file_selection_new("Open File"); pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &mask, NULL, sg_small_xpm); type = gtk_file_list_add_type_with_pixmap (GTK_FILE_LIST(GTK_ICON_FILESEL(filesel)->file_list), pixmap, mask); gtk_file_list_add_type_filter (GTK_FILE_LIST(GTK_ICON_FILESEL(filesel)->file_list), type, "*.sg"); gtk_file_list_add_type_filter (GTK_FILE_LIST(GTK_ICON_FILESEL(filesel)->file_list), type, "*.sgp"); gtk_file_list_add_type_filter (GTK_FILE_LIST(GTK_ICON_FILESEL(filesel)->file_list), type, "*.sgw"); gtk_icon_list_set_selection_mode(GTK_ICON_LIST(GTK_ICON_FILESEL(filesel)->file_list), GTK_SELECTION_MULTIPLE); box = gtk_hbox_new(FALSE, 1); gtk_box_pack_start(GTK_BOX(gtk_bin_get_child(GTK_BIN(filesel))), box, TRUE, TRUE, 0); gtk_widget_show(box); show_button = gtk_button_new_with_label("Show Tree"); gtk_box_pack_start(GTK_BOX(box), show_button, TRUE, TRUE, 0); gtk_widget_show(show_button); hide_button = gtk_button_new_with_label("Hide Tree"); gtk_box_pack_start(GTK_BOX(box), hide_button, TRUE, TRUE, 0); gtk_widget_show(hide_button); g_signal_connect (GTK_OBJECT (filesel), "destroy", GTK_SIGNAL_FUNC (quit), NULL); g_signal_connect (GTK_OBJECT (GTK_ICON_FILESEL(filesel)->ok_button), "clicked", GTK_SIGNAL_FUNC (ok_clicked), filesel); g_signal_connect (GTK_OBJECT (show_button), "clicked", GTK_SIGNAL_FUNC (show_tree), NULL); g_signal_connect (GTK_OBJECT (hide_button), "clicked", GTK_SIGNAL_FUNC (hide_tree), NULL); gtk_widget_show(filesel); gtk_main(); return(0); }
static GtkWidget * display_simple_dialog(gint type, gint btn_mask, char *message) { GtkWidget *win, *main_vb, *top_hb, *msg_vb, *type_pm, *msg_label, *ask_cb, *bbox, *ok_bt, *yes_bt, *bt, *save_bt, *dont_save_bt; GdkPixmap *pixmap; GdkBitmap *mask; GtkStyle *style; GdkColormap *cmap; const gchar **icon; /* Main window */ switch (type) { case ESD_TYPE_WARN : icon = stock_dialog_warning_48_xpm; break; case ESD_TYPE_CONFIRMATION: icon = stock_dialog_warning_48_xpm; break; case ESD_TYPE_ERROR: icon = stock_dialog_error_48_xpm; break; case ESD_TYPE_STOP : icon = stock_dialog_stop_48_xpm; break; case ESD_TYPE_INFO : default : icon = stock_dialog_info_48_xpm; break; } /* * The GNOME HIG: * * http://developer.gnome.org/projects/gup/hig/1.0/windows.html#alert-windows * * says that the title should be empty for alert boxes, so there's "less * visual noise and confounding text." * * The Windows HIG: * * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch09f.asp * * says it should * * ...appropriately identify the source of the message -- usually * the name of the object. For example, if the message results * from editing a document, the title text is the name of the * document, optionally followed by the application name. If the * message results from a non-document object, then use the * application name." * * and notes that the title is important "because message boxes might * not always the the result of current user interaction" (e.g., some * app might randomly pop something up, e.g. some browser letting you * know that it couldn't fetch something because of a timeout). * * It also says not to use "warning" or "caution", as there's already * an icon that tells you what type of alert it is, and that you * shouldn't say "error", as that provides no useful information. * * So we give it a title on Win32, and don't give it one on UN*X. * For now, we give it a Win32 title of just "Wireshark"; we should * arguably take an argument for the title. */ if(btn_mask == ESD_BTN_NONE) { win = splash_window_new(); } else { #ifdef _WIN32 win = dlg_window_new("Wireshark"); #else win = dlg_window_new(""); #endif } gtk_window_set_modal(GTK_WINDOW(win), TRUE); gtk_container_set_border_width(GTK_CONTAINER(win), 6); /* Container for our rows */ main_vb = gtk_vbox_new(FALSE, 12); gtk_container_add(GTK_CONTAINER(win), main_vb); gtk_widget_show(main_vb); /* Top row: Icon and message text */ top_hb = gtk_hbox_new(FALSE, 12); gtk_container_set_border_width(GTK_CONTAINER(main_vb), 6); gtk_container_add(GTK_CONTAINER(main_vb), top_hb); gtk_widget_show(top_hb); /* icon */ style = gtk_widget_get_style(win); cmap = gdk_colormap_get_system(); pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, cmap, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) icon); type_pm = gtk_image_new_from_pixmap(pixmap, mask); gtk_misc_set_alignment (GTK_MISC (type_pm), 0.5f, 0.0f); gtk_container_add(GTK_CONTAINER(top_hb), type_pm); gtk_widget_show(type_pm); /* column for message and optional check button */ msg_vb = gtk_vbox_new(FALSE, 6); gtk_box_set_spacing(GTK_BOX(msg_vb), 24); gtk_container_add(GTK_CONTAINER(top_hb), msg_vb); gtk_widget_show(msg_vb); /* message */ msg_label = gtk_label_new(message); gtk_label_set_markup(GTK_LABEL(msg_label), message); gtk_label_set_selectable(GTK_LABEL(msg_label), TRUE); #if GTK_CHECK_VERSION(2,9,0) g_object_set(gtk_widget_get_settings(msg_label), "gtk-label-select-on-focus", FALSE, NULL); #endif gtk_label_set_justify(GTK_LABEL(msg_label), GTK_JUSTIFY_FILL); gtk_misc_set_alignment (GTK_MISC (type_pm), 0.5f, 0.0f); gtk_container_add(GTK_CONTAINER(msg_vb), msg_label); gtk_label_set_line_wrap(GTK_LABEL(msg_label), TRUE); gtk_widget_show(msg_label); if(btn_mask == ESD_BTN_NONE) { gtk_widget_show(win); return win; } /* optional check button */ ask_cb = gtk_check_button_new_with_label("replace with text..."); gtk_container_add(GTK_CONTAINER(msg_vb), ask_cb); g_object_set_data(G_OBJECT(win), CHECK_BUTTON, ask_cb); /* Button row */ switch(btn_mask) { case(ESD_BTN_OK): bbox = dlg_button_row_new(GTK_STOCK_OK, NULL); break; case(ESD_BTN_OK | ESD_BTN_CANCEL): bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_CANCEL, NULL); break; case(ESD_BTN_CLEAR | ESD_BTN_CANCEL): bbox = dlg_button_row_new(GTK_STOCK_CLEAR, GTK_STOCK_CANCEL, NULL); break; case(ESD_BTNS_YES_NO_CANCEL): bbox = dlg_button_row_new(GTK_STOCK_YES, GTK_STOCK_NO, GTK_STOCK_CANCEL, NULL); break; case(ESD_BTNS_SAVE_DONTSAVE_CANCEL): bbox = dlg_button_row_new(GTK_STOCK_SAVE, WIRESHARK_STOCK_DONT_SAVE, GTK_STOCK_CANCEL, NULL); break; case(ESD_BTNS_SAVE_QUIT_DONTSAVE_CANCEL): bbox = dlg_button_row_new(GTK_STOCK_SAVE, WIRESHARK_STOCK_QUIT_DONT_SAVE, GTK_STOCK_CANCEL, NULL); break; case(ESD_BTNS_YES_NO): bbox = dlg_button_row_new(GTK_STOCK_YES, GTK_STOCK_NO, NULL); break; default: g_assert_not_reached(); bbox = NULL; break; } gtk_container_add(GTK_CONTAINER(main_vb), bbox); gtk_widget_show(bbox); ok_bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_OK); if(ok_bt) { g_object_set_data(G_OBJECT(ok_bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_OK)); g_signal_connect(ok_bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } save_bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_SAVE); if (save_bt) { g_object_set_data(G_OBJECT(save_bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_SAVE)); g_signal_connect(save_bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } dont_save_bt = g_object_get_data(G_OBJECT(bbox), WIRESHARK_STOCK_DONT_SAVE); if (dont_save_bt) { g_object_set_data(G_OBJECT(dont_save_bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_DONT_SAVE)); g_signal_connect(dont_save_bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } dont_save_bt = g_object_get_data(G_OBJECT(bbox), WIRESHARK_STOCK_QUIT_DONT_SAVE); if (dont_save_bt) { g_object_set_data(G_OBJECT(dont_save_bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_QUIT_DONT_SAVE)); g_signal_connect(dont_save_bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_CLEAR); if(bt) { g_object_set_data(G_OBJECT(bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_CLEAR)); g_signal_connect(bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } yes_bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_YES); if(yes_bt) { g_object_set_data(G_OBJECT(yes_bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_YES)); g_signal_connect(yes_bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_NO); if(bt) { g_object_set_data(G_OBJECT(bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_NO)); g_signal_connect(bt, "clicked", G_CALLBACK(simple_dialog_cancel_cb), win); } bt = g_object_get_data(G_OBJECT(bbox), GTK_STOCK_CANCEL); if(bt) { g_object_set_data(G_OBJECT(bt), CALLBACK_BTN_KEY, GINT_TO_POINTER(ESD_BTN_CANCEL)); window_set_cancel_button(win, bt, simple_dialog_cancel_cb); } if(!bt) { if(yes_bt) { window_set_cancel_button(win, yes_bt, simple_dialog_cancel_cb); } else { window_set_cancel_button(win, ok_bt, simple_dialog_cancel_cb); } } dlg_button_focus_nth(bbox, 0); gtk_widget_show(win); return win; }
void create_note(Note *old_note, ColorScheme *scheme) { GtkWidget *window; GtkWidget *vbox; GtkWidget *top_hbox; GtkWidget *mid_hbox; GtkWidget *bottom_bar; GtkWidget *bottom_hbox; GtkWidget *top_bar; GtkWidget *delete_button; GdkPixmap *delete_button_pixmap; GdkBitmap *delete_button_mask; GtkWidget *resize_button; GdkPixmap *resize_button_pixmap; GdkBitmap *resize_button_mask; GtkTextBuffer *text_buffer; Note *note; note = old_note ? old_note : malloc(sizeof(Note)); if(!old_note) { highest_note_id++; note->id = highest_note_id; note->scheme = scheme; } window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_decorated(GTK_WINDOW(window), FALSE); gtk_window_set_default_size(GTK_WINDOW(window), 150, 150); if(!old_note) { note->text_widget = gtk_text_view_new_with_buffer(NULL); } text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(note->text_widget)); note->window = window; vbox = gtk_vbox_new(FALSE, 0); top_hbox = gtk_hbox_new(FALSE, 0); mid_hbox = gtk_hbox_new(FALSE, 0); bottom_hbox = gtk_hbox_new(FALSE, 0); top_bar = gtk_label_new(""); note->top_bar_box = gtk_event_box_new(); gtk_widget_set_size_request(top_bar, -1, 10); bottom_bar = gtk_label_new(""); gtk_widget_set_size_request(bottom_bar, -1, 8); delete_button_pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &delete_button_mask, NULL, delete_button_xpm); delete_button = gtk_image_new_from_pixmap(delete_button_pixmap, delete_button_mask); note->delete_button_box = gtk_event_box_new(); gtk_widget_set_size_request(note->delete_button_box, 10, 10); resize_button_pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &resize_button_mask, NULL, resize_button_xpm); resize_button = gtk_image_new_from_pixmap(resize_button_pixmap, resize_button_mask); note->resize_button_box = gtk_event_box_new(); set_note_color(note, note->scheme); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_container_add(GTK_CONTAINER(note->top_bar_box), top_bar); gtk_container_add(GTK_CONTAINER(note->delete_button_box), delete_button); gtk_container_add(GTK_CONTAINER(note->resize_button_box), resize_button); gtk_box_pack_start(GTK_BOX(top_hbox), note->top_bar_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(top_hbox), note->delete_button_box, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(mid_hbox), note->text_widget, TRUE, TRUE, 2); gtk_box_pack_start(GTK_BOX(bottom_hbox), bottom_bar, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bottom_hbox), note->resize_button_box, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), top_hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), mid_hbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), bottom_hbox, FALSE, FALSE, 0); gtk_widget_show_all(window); if(old_note) { gtk_window_resize(GTK_WINDOW(window), old_note->width, old_note->height); gtk_window_move(GTK_WINDOW(window), old_note->x, old_note->y); } else { gtk_window_get_position(GTK_WINDOW(window), &(note->x), &(note->y)); gtk_window_get_size(GTK_WINDOW(window), &(note->width), &(note->height)); } g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(delete_note), note); g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(note_configure_event), note); g_signal_connect(G_OBJECT(note->delete_button_box), "button-press-event", G_CALLBACK(delete_button_pressed), window); g_signal_connect(G_OBJECT(note->resize_button_box), "button-press-event", G_CALLBACK(resize_button_pressed), note); g_signal_connect(G_OBJECT(text_buffer), "changed", G_CALLBACK(save_note), note); g_signal_connect(G_OBJECT(note->top_bar_box), "button-press-event", G_CALLBACK(bar_pressed), note); g_signal_connect(G_OBJECT(note->text_widget), "populate-popup", G_CALLBACK(populate_note_popup), note); }
GtkWidget * create_main_window(void) { GtkWidget *notebook1; GtkWidget *frame3; GtkWidget *frame4; GtkWidget *hbox1; GtkWidget *vbox1; GtkWidget *scrolledwindow1; GtkWidget *node_label1; GtkWidget *node_label2; GtkWidget *node_label3; GtkWidget *node_label4; GtkWidget *node_label7; GtkWidget *node_label8; GtkWidget *node_label9; GtkWidget *mid_frame; GtkWidget *mpr_frame; GtkWidget *hna_frame; GtkWidget *mid_scrolledwindow; GtkWidget *mpr_scrolledwindow; GtkWidget *hna_scrolledwindow; GtkWidget *Main; GtkWidget *label_routes; GtkWidget *hbox2; GtkWidget *frame2; GtkWidget *scrolledwindow4; GtkWidget *label17; GtkWidget *label18; GtkWidget *label19; GtkWidget *scrolledwindow3; GtkWidget *label13; GtkWidget *label14; GtkWidget *label15; GtkWidget *label16; GtkWidget *label_packets; //GtkWidget *empty_notebook_page2; GtkWidget *label3; GtkWidget *net_vbox; GtkWidget *pack_vbox; GtkWidget *pack_disp_vbox; GtkWidget *disp_frame; GtkWidget *route_frame; GtkWidget *route_stats_frame; GtkWidget *route_scrolledwindow; GtkWidget *route_label1; GtkWidget *route_label2; GtkWidget *route_label3; GtkWidget *route_label4; GtkWidget *route_hbox1; GtkWidget *traffic_label; GtkWidget *settings_label; GtkWidget *settings_hbox1; GtkWidget *about_hbox1; GtkWidget *about_label; GtkWidget *empty1; GdkPixmap *unik_logo_gdk; GtkWidget *unik_logo; /* *The main window */ main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_object_set_data(GTK_OBJECT(main_window), "main_window", main_window); gtk_window_set_title(GTK_WINDOW(main_window), (olsrd_version)); gtk_window_set_default_size(GTK_WINDOW(main_window), 600, 550); gtk_signal_connect(GTK_OBJECT(main_window), "destroy", GTK_SIGNAL_FUNC(gui_shutdown), //GTK_SIGNAL_FUNC(gtk_main_quit), NULL); gtk_window_set_position(GTK_WINDOW(main_window), GTK_WIN_POS_CENTER); /* Position window in center */ gtk_window_set_policy(GTK_WINDOW(main_window), FALSE, TRUE, TRUE); /* No user-resizing */ /* *Initialize the pixmaps */ unik_logo_gdk = gdk_pixmap_colormap_create_from_xpm_d(NULL, gtk_widget_get_colormap(main_window), &mask, NULL, (gchar **) logo_xpm); unik_logo = gtk_pixmap_new(unik_logo_gdk, mask); /* *The notebook */ notebook1 = gtk_notebook_new(); gtk_widget_ref(notebook1); gtk_object_set_data_full(GTK_OBJECT(main_window), "notebook1", notebook1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(notebook1); gtk_container_add(GTK_CONTAINER(main_window), notebook1); /* *The first vbox */ vbox1 = gtk_vbox_new(FALSE, 0); gtk_widget_ref(vbox1); gtk_object_set_data_full(GTK_OBJECT(main_window), "vbox1", vbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(vbox1); //gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 1); gtk_container_add(GTK_CONTAINER(notebook1), vbox1); /* *The nodes frame */ frame3 = gtk_frame_new("Registered nodes:"); gtk_widget_ref(frame3); gtk_object_set_data_full(GTK_OBJECT(main_window), "frame3", frame3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(frame3); gtk_box_pack_start(GTK_BOX(vbox1), frame3, TRUE, TRUE, 0); gtk_widget_set_size_request(frame3, -1, 300); gtk_container_set_border_width(GTK_CONTAINER(frame3), 1); /* *The scrolled window to contain the node list */ scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(scrolledwindow1); gtk_object_set_data_full(GTK_OBJECT(main_window), "scrolledwindow1", scrolledwindow1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(scrolledwindow1); gtk_container_add(GTK_CONTAINER(frame3), scrolledwindow1); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); //gtk_box_pack_start (GTK_BOX (frame3), scrolledwindow1, TRUE, TRUE, 0); //gtk_widget_set_usize (scrolledwindow1, -2, 332); /* *The node list */ node_list = gtk_clist_new(7); gtk_widget_ref(node_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "node_list", node_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_list); gtk_container_add(GTK_CONTAINER(scrolledwindow1), node_list); gtk_clist_set_column_width(GTK_CLIST(node_list), 0, 150); /* IP */ //gtk_clist_set_column_justification(GTK_CLIST(node_list), 0, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(node_list), 1, 150); /* gateway */ //gtk_clist_set_column_justification(GTK_CLIST(node_list), 1, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(node_list), 2, 50); /* hopcount */ gtk_clist_set_column_justification(GTK_CLIST(node_list), 2, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(node_list), 3, 80); /* dev */ gtk_clist_set_column_justification(GTK_CLIST(node_list), 3, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(node_list), 4, 70); /* timer */ gtk_clist_set_column_justification(GTK_CLIST(node_list), 4, GTK_JUSTIFY_CENTER); //gtk_clist_set_column_width (GTK_CLIST (node_list), 7, 100); /* last about */ //gtk_clist_set_column_justification(GTK_CLIST(node_list), 7, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(node_list), 5, 40); /* MID */ gtk_clist_set_column_justification(GTK_CLIST(node_list), 5, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(node_list), 6, 40); /* HNA */ gtk_clist_set_column_justification(GTK_CLIST(node_list), 6, GTK_JUSTIFY_CENTER); gtk_clist_column_titles_show(GTK_CLIST(node_list)); /* *Row selection callback */ gtk_signal_connect(GTK_OBJECT(node_list), "select_row", GTK_SIGNAL_FUNC(selection_made), NULL); /* *Column selection callback */ gtk_signal_connect(GTK_OBJECT(node_list), "click_column", GTK_SIGNAL_FUNC(column_clicked_callback), NULL); node_label1 = gtk_label_new("Dest"); gtk_widget_ref(node_label1); gtk_object_set_data_full(GTK_OBJECT(main_window), "IP", node_label1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label1); gtk_clist_set_column_widget(GTK_CLIST(node_list), 0, node_label1); node_label2 = gtk_label_new("Gateway"); gtk_widget_ref(node_label2); gtk_object_set_data_full(GTK_OBJECT(main_window), "hops", node_label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label2); gtk_clist_set_column_widget(GTK_CLIST(node_list), 1, node_label2); node_label3 = gtk_label_new("Metric"); gtk_widget_ref(node_label3); gtk_object_set_data_full(GTK_OBJECT(main_window), "info", node_label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label3); gtk_clist_set_column_widget(GTK_CLIST(node_list), 2, node_label3); node_label4 = gtk_label_new("Device"); gtk_widget_ref(node_label4); gtk_object_set_data_full(GTK_OBJECT(main_window), "Device", node_label4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label4); gtk_clist_set_column_widget(GTK_CLIST(node_list), 3, node_label4); node_label7 = gtk_label_new("Timer"); gtk_widget_ref(node_label7); gtk_object_set_data_full(GTK_OBJECT(main_window), "LMF", node_label7, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label7); gtk_clist_set_column_widget(GTK_CLIST(node_list), 4, node_label7); /* node_label8 = gtk_label_new ("LMA"); gtk_widget_ref (node_label8); gtk_object_set_data_full (GTK_OBJECT (main_window), "LMA", node_label8, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (node_label8); gtk_clist_set_column_widget (GTK_CLIST (node_list), 7, node_label8); */ node_label8 = gtk_label_new("MID"); gtk_widget_ref(node_label8); gtk_object_set_data_full(GTK_OBJECT(main_window), "MID", node_label8, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label8); gtk_clist_set_column_widget(GTK_CLIST(node_list), 5, node_label8); node_label9 = gtk_label_new("HNA"); gtk_widget_ref(node_label9); gtk_object_set_data_full(GTK_OBJECT(main_window), "HNA", node_label9, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(node_label9); gtk_clist_set_column_widget(GTK_CLIST(node_list), 6, node_label9); gtk_clist_column_titles_active(GTK_CLIST(node_list)); gtk_widget_show_now(node_list); /* *Row selection callback */ gtk_signal_connect(GTK_OBJECT(node_list), "select_row", GTK_SIGNAL_FUNC(node_selection), NULL); /* *The first hbox */ hbox1 = gtk_hbox_new(FALSE, 0); gtk_widget_ref(hbox1); gtk_object_set_data_full(GTK_OBJECT(main_window), "hbox1", hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(hbox1); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 0); //gtk_container_add (GTK_CONTAINER (notebook1), hbox1); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 4); gtk_widget_set_size_request(hbox1, -1, 200); /* *The net-info frame */ frame4 = gtk_frame_new("Info:"); gtk_widget_ref(frame4); gtk_object_set_data_full(GTK_OBJECT(main_window), "frame4", frame4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(frame4); gtk_box_pack_start(GTK_BOX(hbox1), frame4, TRUE, TRUE, 0); //gtk_widget_set_size_request(frame4, 200, -1); gtk_container_set_border_width(GTK_CONTAINER(frame4), 1); /* *The net-info hbox */ net_vbox = gtk_vbox_new(FALSE, 0); gtk_widget_ref(net_vbox); gtk_object_set_data_full(GTK_OBJECT(main_window), "net_vbox", net_vbox, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(net_vbox); gtk_container_add(GTK_CONTAINER(frame4), net_vbox); /* *The net-info label field */ net_label = gtk_label_new(NULL); gtk_widget_ref(net_label); gtk_misc_set_alignment((GtkMisc *) net_label, 0, 0); //gtk_label_set_justify((GtkLabel *)net_label,GTK_JUSTIFY_LEFT); gtk_object_set_data_full(GTK_OBJECT(main_window), "net_label", net_label, (GtkDestroyNotify) gtk_widget_unref); //set_net_info("Not connected..."); gtk_widget_show(net_label); gtk_box_pack_start(GTK_BOX(net_vbox), net_label, TRUE, TRUE, 0); //gtk_container_add (GTK_CONTAINER (frame4), net_label); /* *The connect button */ connect_button = gtk_button_new_with_label("Connect to host"); gtk_widget_ref(connect_button); gtk_object_set_data_full(GTK_OBJECT(main_window), "connect_button", connect_button, (GtkDestroyNotify) gtk_widget_unref); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect(GTK_OBJECT(connect_button), "clicked", GTK_SIGNAL_FUNC(connect_callback), NULL); gtk_widget_show(connect_button); gtk_box_pack_start(GTK_BOX(net_vbox), connect_button, FALSE, FALSE, 1); gtk_container_set_border_width(GTK_CONTAINER(connect_button), 5); /* *The node MPR info frame */ mpr_frame = gtk_frame_new("MPR:"); gtk_widget_ref(mpr_frame); gtk_object_set_data_full(GTK_OBJECT(main_window), "mpr_frame", mpr_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(mpr_frame); gtk_box_pack_start(GTK_BOX(hbox1), mpr_frame, FALSE, FALSE, 0); //gtk_widget_set_size_request(mid_frame, 125, -1); gtk_container_set_border_width(GTK_CONTAINER(mpr_frame), 1); /* *The scrolledwindow to contain the MPR node info */ mpr_scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(mpr_scrolledwindow); gtk_object_set_data_full(GTK_OBJECT(main_window), "mpr_scrolledwindow", mpr_scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(mpr_scrolledwindow); gtk_container_add(GTK_CONTAINER(mpr_frame), mpr_scrolledwindow); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(mpr_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width(GTK_CONTAINER(mpr_scrolledwindow), 3); /* *The node MID info frame */ mid_frame = gtk_frame_new("MID:"); gtk_widget_ref(mid_frame); gtk_object_set_data_full(GTK_OBJECT(main_window), "mid_frame", mid_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(mid_frame); gtk_box_pack_start(GTK_BOX(hbox1), mid_frame, FALSE, FALSE, 0); //gtk_widget_set_size_request(mid_frame, 125, -1); gtk_container_set_border_width(GTK_CONTAINER(mid_frame), 1); /* *The scrolledwindow to contain the MID node info */ mid_scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(mid_scrolledwindow); gtk_object_set_data_full(GTK_OBJECT(main_window), "mid_scrolledwindow", mid_scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(mid_scrolledwindow); gtk_container_add(GTK_CONTAINER(mid_frame), mid_scrolledwindow); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(mid_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width(GTK_CONTAINER(mid_scrolledwindow), 3); /* *The MPR list */ mpr_list = gtk_clist_new(1); gtk_widget_ref(mpr_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "mpr_list", mpr_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(mpr_list); gtk_container_add(GTK_CONTAINER(mpr_scrolledwindow), mpr_list); gtk_clist_set_column_width(GTK_CLIST(mpr_list), 0, 120); /* IP */ gtk_clist_column_titles_hide(GTK_CLIST(mpr_list)); /* *The MID list */ mid_list = gtk_clist_new(1); gtk_widget_ref(mid_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "mid_list", mid_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(mid_list); gtk_container_add(GTK_CONTAINER(mid_scrolledwindow), mid_list); gtk_clist_set_column_width(GTK_CLIST(mid_list), 0, 120); /* IP */ gtk_clist_column_titles_hide(GTK_CLIST(mid_list)); /* *The node HNA info frame */ hna_frame = gtk_frame_new("HNA:"); gtk_widget_ref(hna_frame); gtk_object_set_data_full(GTK_OBJECT(main_window), "hna_frame", hna_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(hna_frame); gtk_box_pack_start(GTK_BOX(hbox1), hna_frame, FALSE, FALSE, 0); //gtk_widget_set_size_request(mid_frame, 125, -1); gtk_container_set_border_width(GTK_CONTAINER(hna_frame), 1); /* *The HNA scrolled window */ hna_scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(hna_scrolledwindow); gtk_object_set_data_full(GTK_OBJECT(main_window), "hna_scrolledwindow", hna_scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(hna_scrolledwindow); gtk_container_add(GTK_CONTAINER(hna_frame), hna_scrolledwindow); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hna_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width(GTK_CONTAINER(hna_scrolledwindow), 3); /* *The HNA list */ hna_list = gtk_clist_new(1); gtk_widget_ref(hna_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "hna_list", hna_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(hna_list); gtk_container_add(GTK_CONTAINER(hna_scrolledwindow), hna_list); gtk_clist_set_column_width(GTK_CLIST(hna_list), 0, 120); /* IP */ gtk_clist_column_titles_hide(GTK_CLIST(hna_list)); /* *The "main" notebook page */ Main = gtk_label_new("Main"); gtk_widget_ref(Main); gtk_object_set_data_full(GTK_OBJECT(main_window), "Main", Main, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(Main); gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 0), Main); /* *The main hbox of the Packet page */ hbox2 = gtk_hbox_new(FALSE, 0); gtk_widget_ref(hbox2); gtk_object_set_data_full(GTK_OBJECT(main_window), "hbox2", hbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(hbox2); gtk_container_add(GTK_CONTAINER(notebook1), hbox2); /* *The packet hbox */ pack_vbox = gtk_vbox_new(FALSE, 0); gtk_widget_ref(pack_vbox); gtk_object_set_data_full(GTK_OBJECT(main_window), "pack_vbox", pack_vbox, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(pack_vbox); gtk_box_pack_start(GTK_BOX(hbox2), pack_vbox, TRUE, TRUE, 0); /* *The packet frame */ frame2 = gtk_frame_new("Packet"); gtk_widget_ref(frame2); gtk_object_set_data_full(GTK_OBJECT(main_window), "frame2", frame2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(frame2); gtk_box_pack_start(GTK_BOX(pack_vbox), frame2, TRUE, TRUE, 0); /* Do not expand */ /* *Packet list scrolled window */ scrolledwindow4 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(scrolledwindow4); gtk_object_set_data_full(GTK_OBJECT(main_window), "scrolledwindow4", scrolledwindow4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(scrolledwindow4); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow4), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(frame2), scrolledwindow4); /* *The packet list */ packet_list = gtk_clist_new(3); gtk_widget_ref(packet_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "packet_list", packet_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(packet_list); gtk_container_add(GTK_CONTAINER(scrolledwindow4), packet_list); gtk_clist_set_column_width(GTK_CLIST(packet_list), 0, 80); /* Type */ gtk_clist_set_column_width(GTK_CLIST(packet_list), 1, 150); /* Origin IP */ gtk_clist_set_column_width(GTK_CLIST(packet_list), 2, 20); /* size */ gtk_clist_column_titles_show(GTK_CLIST(packet_list)); label17 = gtk_label_new("Type"); gtk_widget_ref(label17); gtk_object_set_data_full(GTK_OBJECT(main_window), "label17", label17, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label17); gtk_clist_set_column_widget(GTK_CLIST(packet_list), 0, label17); label18 = gtk_label_new("Origin"); gtk_widget_ref(label18); gtk_object_set_data_full(GTK_OBJECT(main_window), "label18", label18, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label18); gtk_clist_set_column_widget(GTK_CLIST(packet_list), 1, label18); label19 = gtk_label_new("Size"); gtk_widget_ref(label19); gtk_object_set_data_full(GTK_OBJECT(main_window), "label19", label19, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label19); gtk_clist_set_column_widget(GTK_CLIST(packet_list), 2, label19); /* *Row selection callback */ gtk_signal_connect(GTK_OBJECT(packet_list), "select_row", GTK_SIGNAL_FUNC(packet_selection), NULL); /* *The packet button */ packet_button = gtk_button_new_with_label("Grab packets"); gtk_widget_ref(packet_button); gtk_object_set_data_full(GTK_OBJECT(main_window), "packet_button", packet_button, (GtkDestroyNotify) gtk_widget_unref); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect(GTK_OBJECT(packet_button), "clicked", GTK_SIGNAL_FUNC(packet_callback), NULL); gtk_widget_show(packet_button); gtk_box_pack_start(GTK_BOX(pack_vbox), packet_button, FALSE, FALSE, 5); /* *The packet disp hbox */ pack_disp_vbox = gtk_vbox_new(FALSE, 0); gtk_widget_ref(pack_disp_vbox); gtk_object_set_data_full(GTK_OBJECT(main_window), "pack_disp_vbox", pack_disp_vbox, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(pack_disp_vbox); gtk_box_pack_start(GTK_BOX(hbox2), pack_disp_vbox, TRUE, TRUE, 0); /* *The packet disp frame */ disp_frame = gtk_frame_new("Packet content"); gtk_widget_ref(disp_frame); gtk_object_set_data_full(GTK_OBJECT(main_window), "disp_frame", disp_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(disp_frame); gtk_box_pack_start(GTK_BOX(pack_disp_vbox), disp_frame, TRUE, TRUE, 0); /* Do not expand */ /* *Scrolled window for the packet display *list */ scrolledwindow3 = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(scrolledwindow3); gtk_object_set_data_full(GTK_OBJECT(main_window), "scrolledwindow3", scrolledwindow3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(scrolledwindow3); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow3), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(disp_frame), scrolledwindow3); //gtk_box_pack_start (GTK_BOX (disp_frame), scrolledwindow3, TRUE, TRUE, 0); /* *The packet display list */ packet_content_list = gtk_clist_new(4); gtk_widget_ref(packet_content_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "packet_content_list", packet_content_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(packet_content_list); gtk_container_add(GTK_CONTAINER(scrolledwindow3), packet_content_list); gtk_clist_set_column_width(GTK_CLIST(packet_content_list), 0, 70); /* 0-7 */ gtk_clist_set_column_justification(GTK_CLIST(packet_content_list), 0, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(packet_content_list), 1, 70); /* 8-15 */ gtk_clist_set_column_justification(GTK_CLIST(packet_content_list), 1, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(packet_content_list), 2, 70); /* 16-23 */ gtk_clist_set_column_justification(GTK_CLIST(packet_content_list), 2, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(packet_content_list), 3, 70); /* 24-31 */ gtk_clist_set_column_justification(GTK_CLIST(packet_content_list), 3, GTK_JUSTIFY_CENTER); gtk_clist_column_titles_show(GTK_CLIST(packet_content_list)); label13 = gtk_label_new("0 - 7"); gtk_widget_ref(label13); gtk_object_set_data_full(GTK_OBJECT(main_window), "label13", label13, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label13); gtk_clist_set_column_widget(GTK_CLIST(packet_content_list), 0, label13); label14 = gtk_label_new("8 - 15"); gtk_widget_ref(label14); gtk_object_set_data_full(GTK_OBJECT(main_window), "label14", label14, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label14); gtk_clist_set_column_widget(GTK_CLIST(packet_content_list), 1, label14); label15 = gtk_label_new("16 - 23"); gtk_widget_ref(label15); gtk_object_set_data_full(GTK_OBJECT(main_window), "label15", label15, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label15); gtk_clist_set_column_widget(GTK_CLIST(packet_content_list), 2, label15); label16 = gtk_label_new("24 - 31"); gtk_widget_ref(label16); gtk_object_set_data_full(GTK_OBJECT(main_window), "label16", label16, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label16); gtk_clist_set_column_widget(GTK_CLIST(packet_content_list), 3, label16); //gtk_clist_set_selection_mode(GTK_CLIST (packet_content_list), GTK_SELECTION_NONE); /* no selections */ /* *The packet button */ packet_disp_button = gtk_button_new_with_label("Display hex"); gtk_widget_ref(packet_disp_button); gtk_object_set_data_full(GTK_OBJECT(main_window), "packet_disp_button", packet_disp_button, (GtkDestroyNotify) gtk_widget_unref); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect(GTK_OBJECT(packet_disp_button), "clicked", GTK_SIGNAL_FUNC(packet_disp_callback), NULL); gtk_widget_show(packet_disp_button); gtk_box_pack_start(GTK_BOX(pack_disp_vbox), packet_disp_button, FALSE, FALSE, 5); /* *The "packets" notebook */ label_packets = gtk_label_new("Packets"); gtk_widget_ref(label_packets); gtk_object_set_data_full(GTK_OBJECT(main_window), "label_packets", label_packets, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label_packets); gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 1), label_packets); /* *The route hbox */ route_hbox1 = gtk_hbox_new(FALSE, 0); gtk_widget_ref(route_hbox1); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_hbox1", route_hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_hbox1); //gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 1); gtk_container_add(GTK_CONTAINER(notebook1), route_hbox1); /* *The routes frame */ route_frame = gtk_frame_new("OLSR routes in kernel:"); gtk_widget_ref(route_frame); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_frame", route_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_frame); //gtk_container_add (GTK_CONTAINER (notebook1), route_frame); gtk_widget_set_size_request(route_frame, 200, -1); gtk_box_pack_start(GTK_BOX(route_hbox1), route_frame, TRUE, TRUE, 0); /* Do not expand */ /* *Scrolled window for the packet display *list */ route_scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_widget_ref(route_scrolledwindow); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_scrolledwindow", route_scrolledwindow, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_scrolledwindow); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(route_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(route_frame), route_scrolledwindow); //gtk_box_pack_start (GTK_BOX (route_frame), scrolledwindow3, TRUE, TRUE, 0); /* *The routes display list */ route_list = gtk_clist_new(4); gtk_widget_ref(route_list); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_list", route_list, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_list); gtk_container_add(GTK_CONTAINER(route_scrolledwindow), route_list); gtk_clist_set_column_width(GTK_CLIST(route_list), 0, 120); /* dest */ //gtk_clist_set_column_justification(GTK_CLIST (route_list), 0, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(route_list), 1, 120); /* gw */ //gtk_clist_set_column_justification(GTK_CLIST (route_list), 1, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(route_list), 2, 50); /* weight */ gtk_clist_set_column_justification(GTK_CLIST(route_list), 2, GTK_JUSTIFY_CENTER); gtk_clist_set_column_width(GTK_CLIST(route_list), 3, 70); /* interface */ gtk_clist_set_column_justification(GTK_CLIST(route_list), 3, GTK_JUSTIFY_CENTER); gtk_clist_column_titles_show(GTK_CLIST(route_list)); route_label1 = gtk_label_new("Destination"); gtk_widget_ref(route_label1); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_label1", route_label1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_label1); gtk_clist_set_column_widget(GTK_CLIST(route_list), 0, route_label1); route_label2 = gtk_label_new("Gateway"); gtk_widget_ref(route_label2); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_label2", route_label2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_label2); gtk_clist_set_column_widget(GTK_CLIST(route_list), 1, route_label2); route_label3 = gtk_label_new("Weight"); gtk_widget_ref(route_label3); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_label3", route_label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_label3); gtk_clist_set_column_widget(GTK_CLIST(route_list), 2, route_label3); route_label4 = gtk_label_new("Interface"); gtk_widget_ref(route_label4); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_label4", route_label4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_label4); gtk_clist_set_column_widget(GTK_CLIST(route_list), 3, route_label4); //gtk_clist_set_selection_mode(GTK_CLIST (route_list), GTK_SELECTION_NONE); /* no selections */ /* *The routes stats frame */ route_stats_frame = gtk_frame_new("Stats:"); gtk_widget_ref(route_stats_frame); gtk_object_set_data_full(GTK_OBJECT(main_window), "route_stats_frame", route_stats_frame, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(route_stats_frame); //gtk_container_add (GTK_CONTAINER (notebook1), route_frame); gtk_box_pack_start(GTK_BOX(route_hbox1), route_stats_frame, TRUE, TRUE, 1); /* *The "routes" notebook */ label_routes = gtk_label_new("Routes"); gtk_widget_ref(label_routes); gtk_object_set_data_full(GTK_OBJECT(main_window), "label_routes", label_routes, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label_routes); gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 2), label_routes); empty1 = gtk_vbox_new(FALSE, 0); gtk_widget_show(empty1); gtk_container_add(GTK_CONTAINER(notebook1), empty1); /* *The "traffic" notebook */ traffic_label = gtk_label_new("Traffic"); gtk_widget_ref(traffic_label); gtk_object_set_data_full(GTK_OBJECT(main_window), "traffic_label", traffic_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(traffic_label); gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 3), traffic_label); /* *The settings hbox */ settings_hbox1 = gtk_hbox_new(FALSE, 0); gtk_widget_ref(settings_hbox1); gtk_object_set_data_full(GTK_OBJECT(main_window), "settings_hbox1", settings_hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(settings_hbox1); //gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 1); gtk_container_add(GTK_CONTAINER(notebook1), settings_hbox1); /* *The settings-info label field */ info_label = gtk_label_new(NULL); gtk_widget_ref(info_label); gtk_misc_set_alignment((GtkMisc *) info_label, 0, 0); //gtk_label_set_justify((GtkLabel *)net_label,GTK_JUSTIFY_LEFT); gtk_object_set_data_full(GTK_OBJECT(main_window), "info_label", info_label, (GtkDestroyNotify) gtk_widget_unref); //set_net_info("Not connected..."); gtk_widget_show(info_label); gtk_box_pack_start(GTK_BOX(settings_hbox1), info_label, TRUE, TRUE, 0); /* *The "settings" notebook */ settings_label = gtk_label_new("Settings"); gtk_widget_ref(settings_label); gtk_object_set_data_full(GTK_OBJECT(main_window), "settings_label", settings_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(settings_label); gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 4), settings_label); /* *The "about" hbox */ about_hbox1 = gtk_hbox_new(FALSE, 0); gtk_widget_ref(about_hbox1); gtk_object_set_data_full(GTK_OBJECT(main_window), "about_hbox1", about_hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(about_hbox1); //gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 1); gtk_container_add(GTK_CONTAINER(notebook1), about_hbox1); gtk_container_set_border_width(GTK_CONTAINER(about_hbox1), 10); /* *The about label field */ about_label = gtk_label_new(NULL); gtk_widget_ref(about_label); gtk_misc_set_alignment((GtkMisc *) about_label, 0, 0); gtk_label_set_justify((GtkLabel *) about_label, GTK_JUSTIFY_CENTER); gtk_object_set_data_full(GTK_OBJECT(main_window), "about_label", about_label, (GtkDestroyNotify) gtk_widget_unref); //set_net_info("Not connected..."); gtk_widget_show(about_label); gtk_box_pack_start(GTK_BOX(about_hbox1), unik_logo, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(about_hbox1), about_label, TRUE, TRUE, 0); gtk_widget_show(unik_logo); gtk_label_set_text((GtkLabel *) about_label, "OLSRD-GUI by Andreas Tonnesen ([email protected])"); /* *The "about" notebook */ label3 = gtk_label_new("About"); gtk_widget_ref(label3); gtk_object_set_data_full(GTK_OBJECT(main_window), "About", label3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show(label3); gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 5), label3); return main_window; }
Installer::Installer( std::string app_name, std::string confirm_title, std::string message) : app_name(app_name), confirm_title(confirm_title), message(message), current_job(NULL), cancel(false), error("") { this->download_finished = false; this->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(this->window), 10); gtk_window_set_default_size(GTK_WINDOW(this->window), WINDOW_WIDTH, WINDOW_HEIGHT); gtk_window_resize(GTK_WINDOW(this->window), WINDOW_WIDTH, WINDOW_HEIGHT); gtk_window_set_gravity(GTK_WINDOW(this->window), GDK_GRAVITY_CENTER); std::string title = this->app_name + " - Installer"; gtk_window_set_title(GTK_WINDOW(this->window), title.c_str()); g_signal_connect ( G_OBJECT(this->window), "destroy", G_CALLBACK(destroy_cb), (gpointer) this); gtk_window_move( GTK_WINDOW(this->window), gdk_screen_width()/2 - WINDOW_WIDTH/2, gdk_screen_height()/2 - WINDOW_HEIGHT/2); GdkColormap* colormap = gtk_widget_get_colormap(this->window); GdkBitmap *mask = NULL; GdkPixmap* icon = gdk_pixmap_colormap_create_from_xpm_d( NULL, colormap, &mask, NULL, (gchar**) titanium_xpm); GtkWidget* image = gtk_image_new_from_pixmap(icon, mask); this->label = gtk_label_new("Downloading packages.."); GtkWidget* hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(hbox), this->label, FALSE, FALSE, 0); this->bar = gtk_progress_bar_new(); GtkWidget* hbox2 = gtk_hbox_new(FALSE, 0); GtkWidget* cancel_but = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_box_pack_start(GTK_BOX(hbox2), cancel_but, TRUE, FALSE, 0); g_signal_connect ( G_OBJECT(cancel_but), "clicked", G_CALLBACK(cancel_cb), (gpointer) this); GtkWidget* vbox = gtk_vbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), this->bar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 10); gtk_container_add(GTK_CONTAINER(this->window), vbox); }
int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *box; GdkColor color; XWMHints mywmhints; GtkWidget *main_button; GdkPixmap *main_button_pixmap; GdkBitmap *main_button_mask; GtkWidget *main_button_box; GtkWidget *color_menu; GtkWidget *item; GtkWidget *label; GtkWidget *color_box; GtkWidget *hbox; GdkColor gcolor; char *wmstickynotes_dir = NULL; gboolean use_default_dir = TRUE; int option_index = 0; int i = 0; struct option long_options[] = { {"directory", required_argument, 0, 'd'}, {"version", no_argument, 0, 'v'}, {"help", no_argument, 0, 'h'}, {0, 0, 0, 0}}; for( i = getopt_long(argc, argv, "d:vh", long_options, &option_index); i >= 0; i = getopt_long(argc, argv, "d:vh", long_options, &option_index) ) { switch(i) { case 'd': wmstickynotes_dir = optarg; use_default_dir = FALSE; break; case 'v': printf("%s\n", PACKAGE_STRING); printf("Copyright (C) 2009 %s\n", PACKAGE_BUGREPORT); return 0; case 'h': usage(); return 0; default: usage(); return 1; } } umask(077); if(use_default_dir) { wmstickynotes_dir = calloc( strlen(default_wmstickynotes_dir) + strlen(getenv("HOME")) + 2, sizeof(char)); strcpy(wmstickynotes_dir, getenv("HOME")); strcat(wmstickynotes_dir, "/"); strcat(wmstickynotes_dir, default_wmstickynotes_dir); } if(chdir(wmstickynotes_dir)) { if(errno == ENOENT) { if(mkdir(wmstickynotes_dir, 0777)) { fprintf(stderr, "Couldn't make directory: %s\n", wmstickynotes_dir); exit(1); } if(chdir(wmstickynotes_dir)) { fprintf(stderr, "Couldn't change to directory: %s\n", wmstickynotes_dir); exit(1); } } else { fprintf(stderr, "Couldn't change to directory: %s\n", wmstickynotes_dir); exit(1); } } if(use_default_dir) free(wmstickynotes_dir); gtk_init(&argc, &argv); colormap = gdk_colormap_new(gdk_visual_get_system(), TRUE); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window), 64, 64); box = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER (window), box); gdk_color_parse ("#fafafa", &color); gtk_widget_modify_bg(box, GTK_STATE_NORMAL, &color); main_button_pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &main_button_mask, NULL, wmstickynotes_xpm); main_button = gtk_image_new_from_pixmap(main_button_pixmap, main_button_mask); main_button_box = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(main_button_box), main_button); gtk_container_add(GTK_CONTAINER(box), main_button_box); color_menu = gtk_menu_new(); for(i=0; i < num_color_schemes; i++) { item = gtk_menu_item_new(); label = gtk_label_new(color_schemes[i].name); color_box = gtk_event_box_new(); gtk_widget_set_size_request(color_box, 15, -1); hbox = gtk_hbox_new(FALSE, 4); gdk_color_parse(color_schemes[i].top, &gcolor); gtk_widget_modify_bg(color_box, GTK_STATE_NORMAL, &gcolor); gtk_widget_modify_bg(color_box, GTK_STATE_PRELIGHT, &gcolor); gtk_container_add(GTK_CONTAINER(item), hbox); gtk_box_pack_start(GTK_BOX(hbox), color_box, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); gtk_menu_shell_append(GTK_MENU_SHELL(color_menu), item); g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(new_note_from_menu), &color_schemes[i]); } gtk_widget_show_all(GTK_WIDGET(color_menu)); gtk_widget_show_all(window); mywmhints.initial_state = WithdrawnState; mywmhints.icon_window = GDK_WINDOW_XWINDOW(box->window); mywmhints.icon_x = 0; mywmhints.icon_y = 0; mywmhints.window_group = GDK_WINDOW_XWINDOW(window->window); mywmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint; XSetWMHints(GDK_DISPLAY(), GDK_WINDOW_XWINDOW(window->window), &mywmhints); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(main_button_box), "button-press-event", G_CALLBACK(main_button_pressed), color_menu); read_old_notes(); gtk_main(); return 0; }
//! initialization of the board void board_init () { int i; GdkColormap *board_colormap; Game *game = opt_game; GdkGC *def_gc = gdk_gc_new ((GdkWindow *)board_area->window); // GtkWidget *hbox, *vbox; state_board_flipped = FALSE; if (!game) { #if GTK_MAJOR_VERSION == 1 gtk_drawing_area_size (GTK_DRAWING_AREA (board_area), 300, 300); #else gtk_widget_set_size_request (GTK_WIDGET (board_area), 300, 300); #endif return; } #if GTK_MAJOR_VERSION == 1 gtk_drawing_area_size (GTK_DRAWING_AREA (board_area), cell_size * board_wid, cell_size * board_heit); #else gtk_widget_set_size_request (GTK_WIDGET (board_area), cell_size * board_wid, cell_size * board_heit); #endif pieces = (GdkPixmap **) malloc (2 * num_pieces * sizeof (GdkPixmap *)); g_assert (pieces); piece_masks = (GdkBitmap **) malloc (2 * num_pieces * sizeof (GdkBitmap *)); g_assert (piece_masks); for (i=0; i<2*num_pieces; i++) pieces[i] = NULL; if (game_file_label) { board_rowbox_real = gtk_hbox_new (TRUE, 0); gtk_box_pack_end (GTK_BOX (board_rowbox), board_rowbox_real, FALSE, FALSE, 0); #if GTK_MAJOR_VERSION == 1 gtk_widget_set_usize (GTK_WIDGET (board_rowbox_real), cell_size * board_wid, -1); #else gtk_widget_set_size_request (GTK_WIDGET (board_rowbox_real), cell_size * board_wid, -1); #endif for (i=0; i<board_wid; i++) gtk_container_add (GTK_CONTAINER (board_rowbox_real), gtk_label_new (board_get_file_label_str (game_file_label, i))); gtk_widget_show_all (board_rowbox); } if (game_rank_label) { board_colbox_real = gtk_vbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (board_colbox), board_colbox_real, FALSE, FALSE, 0); #if GTK_MAJOR_VERSION == 1 gtk_widget_set_usize (GTK_WIDGET (board_colbox_real), -1, cell_size * board_heit); #else gtk_widget_set_size_request (GTK_WIDGET (board_colbox_real), -1, cell_size * board_heit); #endif for (i=0; i<board_heit; i++) gtk_container_add (GTK_CONTAINER (board_colbox_real), gtk_label_new (board_get_rank_label_str (game_rank_label, i))); gtk_widget_show_all (board_colbox); } if (game->colors == NULL) game->colors = board_default_colors; board_colormap = gdk_colormap_get_system (); board_color_init (&game->colors[0], &board_colors[0], &board_gcs[0], board_colormap, board_area); board_color_init (&game->colors[3], &board_colors[1], &board_gcs[1], board_colormap, board_area); if (game_draw_cell_boundaries) board_color_init (&game->colors[6], &board_colors[2], &board_gcs[2], board_colormap, board_area); if (game_highlight_colors) for (i=0; i<3; i++) board_color_init (&game_highlight_colors[3*i], &board_highlight_colors[i], &board_highlight_gcs[i], board_colormap, board_area); { char buttonize_colors [6] = {240, 240, 240, 128, 128, 128}; for (i=0; i<2; i++) board_color_init (&buttonize_colors[3*i], &board_buttonize_colors[i], &board_buttonize_gcs[i], board_colormap, board_area); } g_assert (num_pieces); for (i=0; i<2*num_pieces; i++) { char **pixmap = NULL; guchar *rgbbuf = NULL; { byte *colors = game->colors; if (i >= num_pieces && colors[0] == colors[3] && colors[1] == colors[4] && colors[2] == colors[5]) { pieces[i] = pieces[i-num_pieces]; piece_masks[i] = piece_masks[i-num_pieces]; continue; } } if (game_get_rgbmap) { rgbbuf = game_get_rgbmap(1+i%num_pieces, i < num_pieces ? WHITE: BLACK); if (rgbbuf) { pieces[i] = gdk_pixmap_new ( board_area->window, cell_size, cell_size, -1); gdk_draw_rgb_image ((GdkDrawable *)pieces[i], def_gc, 0, 0, cell_size, cell_size, GDK_RGB_DITHER_MAX, rgbbuf, cell_size * 3); } piece_masks[i] = NULL; } else { if (game_get_pixmap) pixmap = game_get_pixmap (1+i%num_pieces, i < num_pieces ? WHITE: BLACK); else pixmap = game->pixmaps [i%num_pieces]; if (pixmap) { pieces[i] = gdk_pixmap_colormap_create_from_xpm_d (NULL, board_colormap, &piece_masks[i], board_colors + i / num_pieces, pixmap); assert (pieces[i]); } else piece_masks[i] = NULL; } } if (game_bg_pixmap) { board_bgimage = gdk_pixmap_colormap_create_from_xpm_d (NULL, board_colormap, NULL, board_colors, game_bg_pixmap); assert (board_bgimage); } gdk_gc_destroy (def_gc); }
static GtkWidget * CreateMessageBox( void ) { GtkWidget * vbox1; GtkWidget * hbox1; GtkWidget * hbuttonbox1; GtkWidget * Ok; GtkAccelGroup * accel_group; GtkStyle * pixmapstyle; GdkPixmap * pixmapwid; GdkBitmap * mask; accel_group=gtk_accel_group_new(); MessageBox=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_widget_set_events( MessageBox,GDK_EXPOSURE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_VISIBILITY_NOTIFY_MASK ); gtk_window_set_title( GTK_WINDOW( MessageBox ),"MPlayer ..." ); gtk_window_set_position( GTK_WINDOW( MessageBox ),GTK_WIN_POS_CENTER ); gtk_window_set_modal( GTK_WINDOW( MessageBox ),TRUE ); gtk_window_set_policy( GTK_WINDOW( MessageBox ),FALSE,FALSE,TRUE ); gtk_window_set_wmclass( GTK_WINDOW( MessageBox ),"Message",MPlayer ); gtk_widget_realize( MessageBox ); gtkAddIcon( MessageBox ); vbox1=gtkAddVBox( gtkAddDialogFrame( MessageBox ),0 ); hbox1=gtkAddHBox( vbox1,1 ); pixmapstyle=gtk_widget_get_style( MessageBox ); pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )warning_xpm ); WarningPixmap=gtk_pixmap_new( pixmapwid,mask ); pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )error_xpm ); ErrorPixmap=gtk_pixmap_new( pixmapwid,mask ); gtk_widget_hide( WarningPixmap ); gtk_box_pack_start( GTK_BOX( hbox1 ),WarningPixmap,FALSE,FALSE,0 ); gtk_widget_set_usize( WarningPixmap,55,-2 ); gtk_widget_hide( ErrorPixmap ); gtk_box_pack_start( GTK_BOX( hbox1 ),ErrorPixmap,FALSE,FALSE,0 ); gtk_widget_set_usize( ErrorPixmap,55,-2 ); gtkMessageBoxText=gtk_label_new( "Text jol. Ha ezt megerted,akkor neked nagyon jo a magyar tudasod,te." ); gtk_widget_show( gtkMessageBoxText ); gtk_box_pack_start( GTK_BOX( hbox1 ),gtkMessageBoxText,TRUE,TRUE,0 ); // gtk_label_set_justify( GTK_LABEL( gtkMessageBoxText ),GTK_JUSTIFY_FILL ); gtk_label_set_justify( GTK_LABEL( gtkMessageBoxText ),GTK_JUSTIFY_CENTER ); gtk_label_set_line_wrap( GTK_LABEL( gtkMessageBoxText ),FALSE ); gtkAddHSeparator( vbox1 ); hbuttonbox1=gtkAddHButtonBox( vbox1 ); Ok=gtkAddButton( MSGTR_Ok,hbuttonbox1 ); gtk_widget_add_accelerator( Ok,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); gtk_widget_add_accelerator( Ok,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); gtk_signal_connect( GTK_OBJECT( MessageBox ),"destroy",GTK_SIGNAL_FUNC( gtk_widget_destroyed ),&MessageBox ); gtk_signal_connect( GTK_OBJECT( Ok ),"clicked",GTK_SIGNAL_FUNC( on_Ok_released ),NULL ); gtk_window_add_accel_group( GTK_WINDOW( MessageBox ),accel_group ); return MessageBox; }
static void gtk_dir_tree_init (GtkDirTree *dir_tree) { GtkCTreeNode *root_node,*mypc_node,*node; GtkDirTreeNode *dirnode; gchar *root_text=G_DIR_SEPARATOR_S,*node_text="dummy"; gchar localhost[MAXHOSTNAMELEN]; GtkWidget *widget; GdkColormap *colormap; #ifdef G_OS_WIN32 gchar drives[128]; gchar* drive; #endif widget = GTK_WIDGET(dir_tree); colormap = gdk_colormap_get_system(); dir_tree->show_hidden = TRUE; /* Get the local hostname. */ #ifndef G_OS_WIN32 if ((gethostname (localhost, MAXHOSTNAMELEN) != 0) && (getdomainname (localhost, MAXHOSTNAMELEN) != 0)) strcpy (localhost, "LocalHost"); #else strcpy (localhost, "My PC"); #endif dir_tree->local_hostname = g_strdup(localhost); gtk_ctree_construct(GTK_CTREE(dir_tree), 1, 0, NULL); gtk_clist_set_row_height (GTK_CLIST (dir_tree), 18); dir_tree->my_pc=gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &dir_tree->my_pc_mask, NULL,mypc_xpm); dir_tree->folder=gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &dir_tree->folder_mask, NULL,folder_xpm); dir_tree->ofolder=gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &dir_tree->ofolder_mask, NULL,ofolder_xpm); dir_tree->dennied=gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &dir_tree->dennied_mask, NULL,dennied_xpm); gtk_clist_set_column_auto_resize(GTK_CLIST(dir_tree),0,TRUE); gtk_clist_set_selection_mode(GTK_CLIST(dir_tree),GTK_SELECTION_SINGLE); gtk_ctree_set_line_style(GTK_CTREE(dir_tree),GTK_CTREE_LINES_DOTTED); gtk_signal_connect(GTK_OBJECT(dir_tree),"tree_expand",GTK_SIGNAL_FUNC(expand_tree), NULL); mypc_node=gtk_ctree_insert_node(GTK_CTREE(dir_tree),NULL,NULL,&dir_tree->local_hostname,4,dir_tree->my_pc,dir_tree->my_pc_mask,dir_tree->my_pc,dir_tree->my_pc_mask,FALSE,FALSE); dirnode=g_malloc0(sizeof(GtkDirTreeNode)); dirnode->path = dir_tree->local_hostname; gtk_ctree_node_set_row_data_full(GTK_CTREE(dir_tree),mypc_node,dirnode,destroy_tree); #ifndef G_OS_WIN32 root_node=gtk_ctree_insert_node(GTK_CTREE(dir_tree),mypc_node,NULL,&root_text,4,dir_tree->folder,dir_tree->folder_mask,dir_tree->ofolder,dir_tree->ofolder_mask,FALSE,FALSE); dirnode=g_malloc0(sizeof(GtkDirTreeNode)); dirnode->path=g_strdup(G_DIR_SEPARATOR_S); gtk_ctree_node_set_row_data_full(GTK_CTREE(dir_tree),root_node,dirnode,destroy_tree); node=gtk_ctree_insert_node(GTK_CTREE(dir_tree),root_node,NULL,&node_text,4,NULL,NULL,NULL,NULL,TRUE,TRUE); gtk_ctree_expand(GTK_CTREE(dir_tree),mypc_node); gtk_ctree_select(GTK_CTREE(dir_tree),root_node); #else /* On Windoze there isn't one unique root directory "/" but instead * there are logical drives a:, c: ... . Insert them into the dir_tree. */ /* Get the Drives string */ GetLogicalDriveStrings(sizeof(drives), drives); drive = drives; /* add an entry for every existing drive */ while (*drive != '\0') { root_node=gtk_ctree_insert_node(GTK_CTREE(dir_tree),mypc_node,NULL,&drive,4,dir_tree->folder,dir_tree->folder_mask,dir_tree->ofolder,dir_tree->ofolder_mask,FALSE,FALSE); dirnode = g_malloc0(sizeof(GtkDirTreeNode)); dirnode->path = g_strdup(drive); gtk_ctree_node_set_row_data_full(GTK_CTREE(dir_tree),root_node,dirnode,destroy_tree); node=gtk_ctree_insert_node(GTK_CTREE(dir_tree),root_node,NULL,&node_text, 4,NULL,NULL,NULL,NULL,TRUE,TRUE); drive += (strlen(drive) + 1); } gtk_ctree_expand(GTK_CTREE(dir_tree),mypc_node); gtk_ctree_select(GTK_CTREE(dir_tree),mypc_node); #endif }
GdkPixmap *gtk_load_pixmap(char **pixmap) { return gdk_pixmap_colormap_create_from_xpm_d(NULL, gdk_colormap_get_system(), NULL, NULL, pixmap); }
void create_object_pixmap(SheetObject *so, GtkWidget *parent, GdkPixmap **pixmap, GdkBitmap **mask) { GtkStyle *style; g_assert(so); g_assert(pixmap); g_assert(mask); style = gtk_widget_get_style(parent); if (so->pixmap != NULL) { *pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, gtk_widget_get_colormap(parent), mask, &style->bg[GTK_STATE_NORMAL], (gchar **)so->pixmap); } else { if (so->pixmap_file != NULL) { GdkPixbuf *pixbuf; GError *error = NULL; pixbuf = gdk_pixbuf_new_from_file(so->pixmap_file, &error); if (pixbuf != NULL) { int width = gdk_pixbuf_get_width (pixbuf); int height = gdk_pixbuf_get_height (pixbuf); if (width > 22 && prefs.fixed_icon_size) { GdkPixbuf *cropped; g_warning ("Shape icon '%s' size wrong, cropped.", so->pixmap_file); cropped = gdk_pixbuf_new_subpixbuf (pixbuf, (width - 22) / 2, height > 22 ? (height - 22) / 2 : 0, 22, height > 22 ? 22 : height); g_object_unref (pixbuf); pixbuf = cropped; } gdk_pixbuf_render_pixmap_and_mask(pixbuf, pixmap, mask, 1.0); g_object_unref(pixbuf); } else { message_warning ("%s", error->message); g_error_free (error); *pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, gtk_widget_get_colormap(parent), mask, &style->bg[GTK_STATE_NORMAL], (gchar **)missing); } } else { *pixmap = NULL; *mask = NULL; } } }
int WinDraw_Init(void) { GdkVisual *visual; GdkColormap *colormap; GdkBitmap *mask; WindowX = 768; WindowY = 512; if ((root_width < WindowX) || (root_height < WindowY)) { fprintf(stderr, "No support resolution.\n"); return FALSE; } visual = gtk_widget_get_visual(drawarea); switch (visual->type) { case GDK_VISUAL_TRUE_COLOR: break; case GDK_VISUAL_DIRECT_COLOR: if (visual->depth >= 15) break; /* FALLTHROUGH */ default: fprintf(stderr, "No support visual class.\n"); return FALSE; } /* 15 or 16 bpp 以外はサポート外 */ if (visual->depth != 15 && visual->depth != 16) { fprintf(stderr, "No support depth.\n"); return FALSE; } WinDraw_Pal16R = visual->red_mask; WinDraw_Pal16G = visual->green_mask; WinDraw_Pal16B = visual->blue_mask; surface = gdk_image_new(GDK_IMAGE_FASTEST, visual, FULLSCREEN_WIDTH, FULLSCREEN_HEIGHT); if (surface == NULL) { g_message("can't create surface."); return 1; } ScrBuf = (WORD *)(surface->mem); pixmap = gdk_pixmap_new(drawarea->window, FULLSCREEN_WIDTH, FULLSCREEN_HEIGHT, visual->depth); if (pixmap == NULL) { g_message("can't create pixmap."); return FALSE; } gdk_draw_rectangle(pixmap, window->style->black_gc, TRUE, 0, 0, FULLSCREEN_WIDTH, FULLSCREEN_HEIGHT); /* けろぴーすぷらっしゅ用意 */ colormap = gtk_widget_get_colormap(window); splash_pixmap = gdk_pixmap_colormap_create_from_xpm_d(NULL, colormap, &mask, NULL, keropi_xpm); if (splash_pixmap == NULL) g_error("Couldn't create replacement pixmap."); return TRUE; }