static int create_disassembly( GtkBox *parent, gtkui_font font ) { size_t i; GtkWidget *scrollbar; gchar *disassembly_titles[] = { "Address", "Instruction" }; /* A box to hold the disassembly listing and the scrollbar */ disassembly_box = gtk_hbox_new( FALSE, 0 ); gtk_box_pack_start_defaults( parent, disassembly_box ); /* The disassembly CList itself */ disassembly = gtk_clist_new_with_titles( 2, disassembly_titles ); gtkui_set_font( disassembly, font ); gtk_clist_column_titles_passive( GTK_CLIST( disassembly ) ); for( i = 0; i < 2; i++ ) gtk_clist_set_column_auto_resize( GTK_CLIST( disassembly ), i, TRUE ); gtk_box_pack_start_defaults( GTK_BOX( disassembly_box ), disassembly ); /* The disassembly scrollbar */ disassembly_scrollbar_adjustment = gtk_adjustment_new( 0, 0x0000, 0xffff, 0.5, 20, 20 ); gtk_signal_connect( GTK_OBJECT( disassembly_scrollbar_adjustment ), "value-changed", GTK_SIGNAL_FUNC( move_disassembly ), NULL ); scrollbar = gtk_vscrollbar_new( GTK_ADJUSTMENT( disassembly_scrollbar_adjustment ) ); gtk_box_pack_start( GTK_BOX( disassembly_box ), scrollbar, FALSE, FALSE, 0 ); gtkui_scroll_connect( GTK_CLIST( disassembly ), GTK_ADJUSTMENT( disassembly_scrollbar_adjustment ) ); return 0; }
/* Creates the clist widget used in the "Contents" page of the Properties * dialog for a directory */ GtkWidget * dir_contents_list( GNode *dnode ) { char *col_titles[2]; char *clist_row[2]; GtkWidget *clist_w; Icon *icon; int i; g_assert( NODE_IS_DIR(dnode) ); col_titles[0] = _("Node type"); col_titles[1] = _("Quantity"); /* Don't use gui_clist_add( ) as this one shouldn't be placed * inside a scrolled window */ clist_w = gtk_clist_new_with_titles( 2, col_titles ); gtk_clist_set_selection_mode( GTK_CLIST(clist_w), GTK_SELECTION_SINGLE ); for (i = 0; i < 2; i++) gtk_clist_set_column_auto_resize( GTK_CLIST(clist_w), i, TRUE ); clist_row[0] = NULL; for (i = 1; i < NUM_NODE_TYPES; i++) { clist_row[1] = (char *)i64toa( DIR_NODE_DESC(dnode)->subtree.counts[i] ); gtk_clist_append( GTK_CLIST(clist_w), clist_row ); icon = &node_type_mini_icons[i]; gtk_clist_set_pixtext( GTK_CLIST(clist_w), i - 1, 0, _(node_type_plural_names[i]), 2, icon->pixmap, icon->mask ); } return clist_w; }
GtkCList * create_stat_table(GtkWidget *scrolled_window, GtkWidget *vbox, int columns, const char *titles[]) { GtkCList *table; int i; /* create table */ table = GTK_CLIST(gtk_clist_new_with_titles(columns, (gchar **) titles)); gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0); /* configure clist */ gtk_clist_column_titles_passive(table); gtk_clist_column_titles_show(table); for (i = 0; i < columns; i++) gtk_clist_set_column_auto_resize(table, i, TRUE); gtk_clist_set_selection_mode(table, GTK_SELECTION_SINGLE); /* Put clist into a scrolled window */ gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(table)); gtk_widget_show(GTK_WIDGET(table)); gtk_widget_show(scrolled_window); return table; }
/** * Set or clear (when rc == NULL) the information about the record. */ static void search_gui_refresh_details(const record_t *rc) { if (NULL == clist_search_details) { static const gchar name[] = "clist_search_details"; clist_search_details = GTK_CLIST(gui_main_window_lookup(name)); gtk_clist_set_column_auto_resize(clist_search_details, 0, TRUE); } g_return_if_fail(clist_search_details); gtk_clist_freeze(clist_search_details); search_gui_set_details(rc); gtk_clist_thaw(clist_search_details); search_set_xml_metadata(rc); }
static int create_breakpoints( GtkBox *parent ) { size_t i; gchar *breakpoint_titles[] = { "ID", "Type", "Value", "Ignore", "Life", "Condition" }; breakpoints = gtk_clist_new_with_titles( 6, breakpoint_titles ); gtk_clist_column_titles_passive( GTK_CLIST( breakpoints ) ); for( i = 0; i < 6; i++ ) gtk_clist_set_column_auto_resize( GTK_CLIST( breakpoints ), i, TRUE ); gtk_box_pack_start_defaults( parent, breakpoints ); return 0; }
static int create_stack_display( GtkBox *parent, gtkui_font font ) { size_t i; gchar *stack_titles[] = { "Address", "Value" }; stack = gtk_clist_new_with_titles( 2, stack_titles ); gtkui_set_font( stack, font ); gtk_clist_column_titles_passive( GTK_CLIST( stack ) ); for( i = 0; i < 2; i++ ) gtk_clist_set_column_auto_resize( GTK_CLIST( stack ), i, TRUE ); gtk_box_pack_start( parent, stack, TRUE, TRUE, 5 ); gtk_signal_connect( GTK_OBJECT( stack ), "select-row", GTK_SIGNAL_FUNC( stack_click ), NULL ); return 0; }
int install_gui(GtkWidget *main_window, int w, int h, int x, int y) { GtkWidget *scrolled_window; GtkWidget *button; GtkWidget *label; GtkWidget *pixmapwid; GdkPixmap *pixmap; GdkBitmap *mask; char temp_str[256]; const char *svalue; gchar *titles[] = {"", _("Files to install")}; if (filew) { return EXIT_SUCCESS; } clist_row_selected = 0; g_snprintf(temp_str, sizeof(temp_str), "%s %s", PN, _("Install")); filew = gtk_widget_new(GTK_TYPE_FILE_SELECTION, "type", GTK_WINDOW_TOPLEVEL, "title", temp_str, NULL); gtk_window_set_default_size(GTK_WINDOW(filew), w, h); gtk_widget_set_uposition(filew, x, y); gtk_window_set_modal(GTK_WINDOW(filew), TRUE); gtk_window_set_transient_for(GTK_WINDOW(filew), GTK_WINDOW(main_window)); get_pref(PREF_INSTALL_PATH, NULL, &svalue); if (svalue && svalue[0]) { gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew), svalue); } gtk_file_selection_hide_fileop_buttons((gpointer) filew); gtk_widget_hide((GTK_FILE_SELECTION(filew)->cancel_button)); gtk_signal_connect(GTK_OBJECT(filew), "destroy", GTK_SIGNAL_FUNC(cb_destroy), filew); /* Even though I hide the ok button I still want to connect its signal */ /* because a double click on the file name also calls this callback */ gtk_widget_hide(GTK_WIDGET(GTK_FILE_SELECTION(filew)->ok_button)); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button), "clicked", GTK_SIGNAL_FUNC(cb_add), filew); clist = gtk_clist_new_with_titles(2, titles); gtk_widget_set_usize(GTK_WIDGET(clist), 0, 166); gtk_clist_column_titles_passive(GTK_CLIST(clist)); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), INST_SDCARD_COLUMN, TRUE); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); get_pixmaps(clist, PIXMAP_SDCARD, &pixmap, &mask); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_clist_set_column_widget(GTK_CLIST(clist), INST_SDCARD_COLUMN, pixmapwid); gtk_clist_set_column_justification(GTK_CLIST(clist), INST_SDCARD_COLUMN, GTK_JUSTIFY_CENTER); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); /* Scrolled Window for file list */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist)); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 5); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->action_area), scrolled_window, TRUE, TRUE, 0); label = gtk_label_new(_("To change to a hidden directory type it below and hit TAB")); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->main_vbox), label, FALSE, FALSE, 0); /* Add/Remove/Quit buttons */ button = gtk_button_new_from_stock(GTK_STOCK_ADD); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_add), filew); button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_remove), filew); button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_quit), filew); /**********************************************************************/ gtk_widget_show_all(filew); /* Hide default buttons not used by Jpilot file selector */ gtk_widget_hide(GTK_FILE_SELECTION(filew)->cancel_button); gtk_widget_hide(GTK_FILE_SELECTION(filew)->ok_button); install_update_clist(); gtk_main(); return EXIT_SUCCESS; }
GtkWidget *create_dir_browser(gchar * title, gchar * current_path, GtkSelectionMode mode, void (*handler) (gchar *)) { GtkWidget *window, *scroll_win, *tree, *vbox, *bbox, *ok, *cancel, *sep; gchar *root_text = "/", *node_text = "dummy"; gchar *currentdir, *pos, *tpath, *tpathnew; GtkCTreeNode *root_node, *node, *nextnode; DirNode *dirnode; gboolean leaf; #ifdef _GTK2 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_modal(GTK_WINDOW(window), TRUE); // gtk_window_set_decorated(GTK_WINDOW(window), TRUE); #else window = gtk_window_new(GTK_WINDOW_DIALOG); #endif gtk_window_set_title(GTK_WINDOW(window), title); gtk_container_border_width(GTK_CONTAINER(window), 10); vbox = gtk_vbox_new(FALSE, 10); gtk_container_add(GTK_CONTAINER(window), vbox); scroll_win = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_usize(scroll_win, 250, 200); gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0); gtk_widget_show(scroll_win); gtk_widget_realize(window); if (!folder_pixmap) { folder_pixmap = gdk_pixmap_create_from_xpm_d(window->window, &folder_mask, NULL, folder); ofolder_pixmap = gdk_pixmap_create_from_xpm_d(window->window, &ofolder_mask, NULL, ofolder); } tree = gtk_ctree_new(1, 0); gtk_clist_set_column_auto_resize(GTK_CLIST(tree), 0, TRUE); gtk_clist_set_selection_mode(GTK_CLIST(tree), mode); gtk_ctree_set_line_style(GTK_CTREE(tree), GTK_CTREE_LINES_DOTTED); gtk_signal_connect(GTK_OBJECT(tree), "tree_expand", GTK_SIGNAL_FUNC(expand_cb), NULL); gtk_signal_connect(GTK_OBJECT(tree), "select_row", GTK_SIGNAL_FUNC(select_row_cb), NULL); gtk_container_add(GTK_CONTAINER(scroll_win), tree); gtk_object_set_user_data(GTK_OBJECT(tree), (gpointer) handler); root_node = gtk_ctree_insert_node(GTK_CTREE(tree), NULL, NULL, &root_text, 4, folder_pixmap, folder_mask, ofolder_pixmap, ofolder_mask, FALSE, FALSE); dirnode = g_malloc0(sizeof (DirNode)); dirnode->path = g_strdup("/"); gtk_ctree_node_set_row_data_full(GTK_CTREE(tree), root_node, dirnode, destroy_cb); node = gtk_ctree_insert_node(GTK_CTREE(tree), root_node, NULL, &node_text, 4, NULL, NULL, NULL, NULL, TRUE, TRUE); gtk_ctree_expand(GTK_CTREE(tree), root_node); gtk_widget_show(tree); sep = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); gtk_widget_show(sep); bbox = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5); ok = gtk_button_new_with_label(tr("Ok")); gtk_object_set_user_data(GTK_OBJECT(ok), window); GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT); gtk_window_set_default(GTK_WINDOW(window), ok); gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(ok_clicked), tree); gtk_widget_show(ok); cancel = gtk_button_new_with_label(tr("Cancel")); GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window)); gtk_widget_show(cancel); gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); gtk_widget_show(bbox); gtk_widget_show(vbox); if (current_path && *current_path) { currentdir = g_strdup(current_path); tpath = g_strdup("/"); pos = strtok(currentdir, "/"); node = gtk_ctree_find_by_row_data_custom(GTK_CTREE(tree), NULL, "/", filetreeent_compare_func); do { tpathnew = g_strconcat(tpath, pos, "/", NULL); g_free(tpath); tpath = tpathnew; nextnode = gtk_ctree_find_by_row_data_custom(GTK_CTREE(tree), node, tpath, filetreeent_compare_func); if (!nextnode) break; node = nextnode; pos = strtok(NULL, "/"); gtk_ctree_get_node_info(GTK_CTREE(tree), node, NULL, NULL, NULL, NULL, NULL, NULL, &leaf, NULL); if (!leaf && pos) gtk_ctree_expand(GTK_CTREE(tree), node); else { gtk_ctree_select(GTK_CTREE(tree), node); break; } } while (pos); g_free(tpath); g_free(currentdir); } else gtk_ctree_select(GTK_CTREE(tree), root_node); return window; }
int nsComponentsDlg::Show(int aDirection) { int err = OK; int customSTIndex = 0, i; int numRows = 0; int currRow = 0; GtkWidget *hbox = NULL; XI_VERIFY(gCtx); XI_VERIFY(gCtx->notebook); if (mWidgetsInit == FALSE) { customSTIndex = gCtx->sdlg->GetNumSetupTypes(); sCustomST = gCtx->sdlg->GetSetupTypeList(); for (i=1; i<customSTIndex; i++) sCustomST = sCustomST->GetNext(); DUMP(sCustomST->GetDescShort()); // create a new table and add it as a page of the notebook mTable = gtk_table_new(5, 1, FALSE); gtk_notebook_append_page(GTK_NOTEBOOK(gCtx->notebook), mTable, NULL); mPageNum = gtk_notebook_get_current_page(GTK_NOTEBOOK(gCtx->notebook)); gtk_widget_show(mTable); // 1st row: a label (msg0) // insert a static text widget in the first row GtkWidget *msg0 = gtk_label_new(mMsg0); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), msg0, FALSE, FALSE, 0); gtk_widget_show(hbox); gtk_table_attach(GTK_TABLE(mTable), hbox, 0, 1, 1, 2, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), GTK_FILL, 20, 20); gtk_widget_show(msg0); // 2nd row: a CList with a check box for each row (short desc) GtkWidget *list = NULL; GtkWidget *scrollwin = NULL; GtkStyle *style = NULL; GdkBitmap *ch_mask = NULL; GdkPixmap *checked = NULL; GdkBitmap *un_mask = NULL; GdkPixmap *unchecked = NULL; gchar *dummy[2] = { " ", " " }; nsComponent *currComp = sCustomST->GetComponents()->GetHead(); GtkWidget *descLongTable = NULL; GtkWidget *frame = NULL; scrollwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); list = gtk_clist_new(2); gtk_clist_set_selection_mode(GTK_CLIST(list), GTK_SELECTION_BROWSE); gtk_clist_column_titles_hide(GTK_CLIST(list)); gtk_clist_set_column_auto_resize(GTK_CLIST(list), 0, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(list), 1, TRUE); // determine number of rows we'll need numRows = sCustomST->GetComponents()->GetLengthVisible(); for (i = 0; i < numRows; i++) gtk_clist_append(GTK_CLIST(list), dummy); style = gtk_widget_get_style(gCtx->window); checked = gdk_pixmap_create_from_xpm_d(gCtx->window->window, &ch_mask, &style->bg[GTK_STATE_NORMAL], (gchar **)check_on_xpm); unchecked = gdk_pixmap_create_from_xpm_d(gCtx->window->window, &un_mask, &style->bg[GTK_STATE_NORMAL], (gchar **)check_off_xpm); while ((currRow < numRows) && currComp) // paranoia! { if (!currComp->IsInvisible()) { if (currComp->IsSelected()) gtk_clist_set_pixmap(GTK_CLIST(list), currRow, 0, checked, ch_mask); else gtk_clist_set_pixmap(GTK_CLIST(list), currRow, 0, unchecked, un_mask); gtk_clist_set_text(GTK_CLIST(list), currRow, 1, currComp->GetDescShort()); currRow++; } currComp = currComp->GetNext(); } // by default, first row selected upon Show() sCurrRowSelected = 0; gtk_signal_connect(GTK_OBJECT(list), "select_row", GTK_SIGNAL_FUNC(RowSelected), NULL); gtk_signal_connect(GTK_OBJECT(list), "key_press_event", GTK_SIGNAL_FUNC(KeyPressed), NULL); gtk_container_add(GTK_CONTAINER(scrollwin), list); gtk_widget_show(list); gtk_widget_show(scrollwin); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), scrollwin, TRUE, TRUE, 0); gtk_widget_show(hbox); gtk_table_attach(GTK_TABLE(mTable), hbox, 0, 1, 2, 3, static_cast<GtkAttachOptions>(GTK_FILL | GTK_EXPAND), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 20, 0); // XXX 3rd row: labels for ds avail and ds reqd // 4th row: a frame with a label (long desc) descLongTable = gtk_table_new(1, 1, FALSE); gtk_widget_show(descLongTable); gtk_table_attach(GTK_TABLE(mTable), descLongTable, 0, 1, 4, 5, static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), static_cast<GtkAttachOptions>(GTK_EXPAND | GTK_FILL), 20, 20); frame = gtk_frame_new(gCtx->Res("DESCRIPTION")); gtk_table_attach_defaults(GTK_TABLE(descLongTable), frame, 0, 1, 0, 1); gtk_widget_show(frame); sDescLong = gtk_label_new( sCustomST->GetComponents()->GetFirstVisible()->GetDescLong()); gtk_label_set_line_wrap(GTK_LABEL(sDescLong), TRUE); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), sDescLong, FALSE, FALSE, 20); gtk_widget_show(hbox); gtk_table_attach_defaults(GTK_TABLE(descLongTable), hbox, 0, 1, 0, 1); gtk_widget_show(sDescLong); mWidgetsInit = TRUE; } else { gtk_notebook_set_page(GTK_NOTEBOOK(gCtx->notebook), mPageNum); gtk_widget_show(mTable); } // signal connect the buttons gCtx->backID = gtk_signal_connect(GTK_OBJECT(gCtx->back), "clicked", GTK_SIGNAL_FUNC(nsComponentsDlg::Back), gCtx->cdlg); gCtx->nextID = gtk_signal_connect(GTK_OBJECT(gCtx->next), "clicked", GTK_SIGNAL_FUNC(nsComponentsDlg::Next), gCtx->cdlg); // show back btn again after setup type dlg where we couldn't go back gtk_widget_set_sensitive(gCtx->back, TRUE); if (aDirection == nsXInstallerDlg::BACKWARD_MOVE) // from install dlg gtk_button_set_label(GTK_BUTTON(gCtx->next), GTK_STOCK_GO_FORWARD); return err; }
GtkWidget * create_PlayList( void ) { GtkWidget * vbox1; GtkWidget * hbox1; GtkWidget * scrolledwindow1; GtkWidget * vbox2; GtkWidget * scrolledwindow2; GtkWidget * scrolledwindow3; GtkWidget * hbuttonbox1; GtkAccelGroup * accel_group; GdkColor transparent = { 0,0,0,0 }; gchar * root = "/"; gchar * dummy = "dummy"; DirNodeType * DirNode; accel_group=gtk_accel_group_new(); PlayList=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_object_set_data( GTK_OBJECT( PlayList ),"PlayList",PlayList ); gtk_widget_set_usize( PlayList,512,384 ); gtk_window_set_title( GTK_WINDOW( PlayList ),MSGTR_PlayList ); gtk_window_set_position( GTK_WINDOW( PlayList ),GTK_WIN_POS_CENTER ); // gtk_window_set_policy( GTK_WINDOW( PlayList ),FALSE,FALSE,FALSE ); gtk_window_set_wmclass( GTK_WINDOW( PlayList ),"Playlist","MPlayer" ); gtk_widget_realize( PlayList ); gtkAddIcon( PlayList ); vbox1=AddVBox( AddDialogFrame( PlayList ),0 ); hbox1=AddHBox( NULL,1 ); gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 ); scrolledwindow1=gtk_scrolled_window_new( NULL,NULL ); gtk_widget_show( scrolledwindow1 ); gtk_container_add( GTK_CONTAINER( AddFrame( NULL,0,hbox1,1 ) ),scrolledwindow1 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); CTDirTree=gtk_ctree_new( 1,0 ); gtk_signal_connect( GTK_OBJECT( CTDirTree ),"tree_expand",GTK_SIGNAL_FUNC( plCTree ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( CTDirTree ),"select_row",GTK_SIGNAL_FUNC( plCTRow ),(void *)0 ); gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),CTDirTree ); gtk_clist_set_column_auto_resize( GTK_CLIST( CTDirTree ),0,TRUE ); gtk_clist_set_column_width( GTK_CLIST( CTDirTree ),0,80 ); gtk_clist_set_selection_mode( GTK_CLIST( CTDirTree ),GTK_SELECTION_SINGLE ); gtk_ctree_set_line_style( GTK_CTREE( CTDirTree ),GTK_CTREE_LINES_SOLID ); gtk_clist_column_titles_show( GTK_CLIST( CTDirTree ) ); gtk_clist_set_shadow_type( GTK_CLIST( CTDirTree ),GTK_SHADOW_NONE ); if ( !pxOpenedBook ) pxOpenedBook=gdk_pixmap_create_from_xpm_d( PlayList->window,&msOpenedBook,&transparent,(gchar **)dir2_xpm ); if ( !pxClosedBook ) pxClosedBook=gdk_pixmap_create_from_xpm_d( PlayList->window,&msClosedBook,&transparent,(gchar **)open2_xpm ); parent=gtk_ctree_insert_node( GTK_CTREE( CTDirTree ),NULL,NULL,&root,4,pxOpenedBook,msOpenedBook,pxClosedBook,msClosedBook,FALSE,FALSE ); DirNode=malloc( sizeof( DirNodeType ) ); DirNode->scaned=0; DirNode->path=strdup( root ); gtk_ctree_node_set_row_data_full(GTK_CTREE( CTDirTree ),parent,DirNode,NULL ); sibling=gtk_ctree_insert_node( GTK_CTREE( CTDirTree ),parent,NULL,&dummy,4,NULL,NULL,NULL,NULL,TRUE,TRUE ); gtk_ctree_expand( GTK_CTREE( CTDirTree ),parent ); gtk_widget_show( CTDirTree ); if ( fsHistory[0] ) old_path = g_filename_from_utf8( fsHistory[0], -1, NULL, NULL, NULL ); gtk_clist_set_column_widget( GTK_CLIST( CTDirTree ),0, AddLabel( MSGTR_PLAYLIST_DirectoryTree,NULL ) ); gtk_clist_column_title_passive( GTK_CLIST( CTDirTree ),0 ); vbox2=AddVBox( AddFrame( NULL,1,hbox1,1 ),0 ); scrolledwindow2=gtk_scrolled_window_new( NULL,NULL ); gtk_widget_show( scrolledwindow2 ); gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow2,TRUE,TRUE,0 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow2 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); CLFiles=gtk_clist_new( 1 ); gtk_widget_show( CLFiles ); gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLFiles ); gtk_clist_set_column_width( GTK_CLIST( CLFiles ),0,80 ); gtk_clist_set_selection_mode( GTK_CLIST( CLFiles ),GTK_SELECTION_EXTENDED ); gtk_clist_column_titles_show( GTK_CLIST( CLFiles ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLFiles ),GTK_SHADOW_NONE ); gtk_clist_set_column_widget( GTK_CLIST( CLFiles ),0, AddLabel( MSGTR_PLAYLIST_Files,NULL ) ); gtk_clist_column_title_passive( GTK_CLIST( CLFiles ),0 ); AddHSeparator( vbox2 ); scrolledwindow3=gtk_scrolled_window_new( NULL,NULL ); gtk_widget_show( scrolledwindow3 ); gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); CLSelected=gtk_clist_new( 2 ); gtk_widget_show( CLSelected ); gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLSelected ); gtk_clist_set_column_width( GTK_CLIST( CLSelected ),0,295 ); gtk_clist_set_column_width( GTK_CLIST( CLSelected ),1,295 ); gtk_clist_set_selection_mode( GTK_CLIST( CLSelected ),GTK_SELECTION_MULTIPLE ); gtk_clist_column_titles_show( GTK_CLIST( CLSelected ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLSelected ),GTK_SHADOW_NONE ); gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),0, AddLabel( MSGTR_PLAYLIST_Selected,NULL ) ); gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),1, AddLabel( MSGTR_PLAYLIST_Path,NULL ) ); gtk_clist_column_title_passive( GTK_CLIST( CLSelected ),0 ); AddHSeparator( vbox1 ); hbuttonbox1=AddHButtonBox( vbox1 ); gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); Add=AddButton( MSGTR_Add,hbuttonbox1 ); Remove=AddButton( MSGTR_Remove,hbuttonbox1 ); Ok=AddButton( MSGTR_Ok,hbuttonbox1 ); Cancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); gtk_widget_add_accelerator( Cancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); gtk_signal_connect( GTK_OBJECT( PlayList ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&PlayList ); gtk_signal_connect( GTK_OBJECT( CLFiles ),"select_row",GTK_SIGNAL_FUNC( plRowSelect ),(void *)0 ); gtk_signal_connect( GTK_OBJECT( CLFiles ),"unselect_row",GTK_SIGNAL_FUNC( plUnRowSelect ),(void *)0 ); gtk_signal_connect( GTK_OBJECT( CLFiles ),"event",GTK_SIGNAL_FUNC( plEvent ),(void *)0 ); gtk_signal_connect( GTK_OBJECT( CLFiles ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void *)0 ); sigSel=gtk_signal_connect( GTK_OBJECT( CLSelected ),"select_row",GTK_SIGNAL_FUNC( plRowSelect ),(void*)1 ); sigUnsel=gtk_signal_connect( GTK_OBJECT( CLSelected ),"unselect_row",GTK_SIGNAL_FUNC( plUnRowSelect ),(void*)1 ); sigEvent=gtk_signal_connect( GTK_OBJECT( CLSelected ),"event",GTK_SIGNAL_FUNC( plEvent ),(void *)1 ); gtk_signal_connect( GTK_OBJECT( CLSelected ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void *)1 ); gtk_signal_connect( GTK_OBJECT( Add ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)3 ); gtk_signal_connect( GTK_OBJECT( Add ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)3 ); gtk_signal_connect( GTK_OBJECT( Remove ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)2 ); gtk_signal_connect( GTK_OBJECT( Remove ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)2 ); gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( Ok ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)1 ); gtk_signal_connect( GTK_OBJECT( Cancel ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( Cancel ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)0 ); gtk_window_add_accel_group( GTK_WINDOW( PlayList ),accel_group ); return PlayList; }
/* ****************************************************************** * */ gint create_route_cb (GtkWidget * widget, guint datum) { GtkWidget *window; gchar *tabeltitel1[] = { "#", _("Waypoint"), _("Latitude"), _("Longitude"), _("Distance"), NULL }; GtkWidget *scrwindow, *vbox, *button, *button3, *hbox, *hbox_displays, *l1; gint i, j; gchar *text[5], text0[20], text1[20], text2[20], text3[20]; GtkTooltips *tooltips; route.edit = TRUE; window = gtk_dialog_new (); routewindow = window; /* gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); */ gtk_window_set_title (GTK_WINDOW (window), _("Define route")); gtk_window_set_default_size (GTK_WINDOW (window), 320, 320); myroutelist = gtk_clist_new_with_titles (5, tabeltitel1); gtk_signal_connect (GTK_OBJECT (GTK_CLIST (myroutelist)), "select-row", GTK_SIGNAL_FUNC (setroutetarget), GTK_OBJECT (myroutelist)); select_route_button = gtk_button_new_with_label (_("Start route")); gtk_widget_set_sensitive (select_route_button, FALSE); GTK_WIDGET_SET_FLAGS (select_route_button, GTK_CAN_DEFAULT); gtk_signal_connect (GTK_OBJECT (select_route_button), "clicked", GTK_SIGNAL_FUNC (do_route_cb), 0); gtk_window_set_default (GTK_WINDOW (window), select_route_button); create_route2_button = gtk_button_new_with_label (_("Take all WP as route")); GTK_WIDGET_SET_FLAGS (create_route2_button, GTK_CAN_DEFAULT); gtk_signal_connect (GTK_OBJECT (create_route2_button), "clicked", GTK_SIGNAL_FUNC (insertallroutepoints), 0); button = gtk_button_new_with_label (_("Abort route")); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (sel_routecancel_cb), GTK_OBJECT (window)); gtk_signal_connect_object (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (sel_routeclose_cb), GTK_OBJECT (window)); /* button3 = gtk_button_new_with_label (_("Close")); */ button3 = gtk_button_new_from_stock (GTK_STOCK_CLOSE); GTK_WIDGET_SET_FLAGS (button3, GTK_CAN_DEFAULT); gtk_signal_connect_object (GTK_OBJECT (button3), "clicked", GTK_SIGNAL_FUNC (sel_routeclose_cb), GTK_OBJECT (window)); /* Font �ndern falls PDA-Mode und Touchscreen */ if (local_config.guimode == GUI_PDA) { if (onemousebutton) { /* Change default font throughout the widget */ PangoFontDescription *font_desc; font_desc = pango_font_description_from_string ("Sans 10"); gtk_widget_modify_font (myroutelist, font_desc); pango_font_description_free (font_desc); } } gtk_clist_set_column_justification (GTK_CLIST (myroutelist), 4, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification (GTK_CLIST (myroutelist), 0, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_auto_resize (GTK_CLIST (myroutelist), 0, TRUE); gtk_clist_set_column_auto_resize (GTK_CLIST (myroutelist), 1, TRUE); gtk_clist_set_column_auto_resize (GTK_CLIST (myroutelist), 2, TRUE); gtk_clist_set_column_auto_resize (GTK_CLIST (myroutelist), 3, TRUE); gtk_clist_set_column_auto_resize (GTK_CLIST (myroutelist), 4, TRUE); scrwindow = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrwindow), myroutelist); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrwindow), (GtkPolicyType) GTK_POLICY_AUTOMATIC, (GtkPolicyType) GTK_POLICY_AUTOMATIC); vbox = gtk_vbox_new (FALSE, 2); /* gtk_container_add (GTK_CONTAINER (window), vbox); */ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (vbox), scrwindow, TRUE, TRUE, 2); hbox = gtk_hbox_new (TRUE, 2); hbox_displays = gtk_hbox_new (TRUE, 2); if (!route.active) l1 = gtk_label_new (_ ("Click on waypoints list\nto add waypoints")); else l1 = gtk_label_new (_ ("Click on list item\nto select next waypoint")); gtk_box_pack_start (GTK_BOX (vbox), l1, FALSE, FALSE, 2); /* gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2); */ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area), hbox, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (hbox), select_route_button, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (hbox), create_route2_button, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (vbox), hbox_displays, FALSE, FALSE, 2); gtk_box_pack_start (GTK_BOX (hbox), button3, TRUE, TRUE, 2); gtk_widget_set_sensitive (create_route_button, FALSE); if (route.active) { gtk_widget_set_sensitive (select_route_button, FALSE); gtk_clist_clear (GTK_CLIST (myroutelist)); for (i = 0; i < route.items; i++) { (routelist + i)->dist = calcdist ((routelist + i)->lon, (routelist + i)->lat); text[1] = (routelist + i)->name; g_snprintf (text0, sizeof (text0), "%d", i + 1); g_snprintf (text1, sizeof (text1), "%8.5f", (routelist + i)->lat); g_snprintf (text2, sizeof (text2), "%8.5f", (routelist + i)->lon); g_snprintf (text3, sizeof (text3), "%9.3f", (routelist + i)->dist); text[0] = text0; text[2] = text1; text[3] = text2; text[4] = text3; j = gtk_clist_append (GTK_CLIST (myroutelist), (gchar **) text); gtk_clist_set_foreground (GTK_CLIST (myroutelist), j, &colors.black); } } else route.items = 0; tooltips = gtk_tooltips_new (); gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), create_route2_button, _ ("Create a route from all waypoints. Sorted with order in file, not distance."), NULL); gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), select_route_button, _ ("Click here to start your journey. GpsDrive guides you through the waypoints in this list."), NULL); gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), button, _("Abort your journey"), NULL); gtk_widget_show_all (window); return TRUE; }
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 }
GtkWidget * yank_app_new(EYank *yank) { yank_preferences *prefs; static GtkTargetEntry drop_types[] = { { "text/uri-list", 0, 1 }, }; static gint n_drop_types = sizeof (drop_types)/sizeof (drop_types [0]); gchar *treetitle[] = { _("NoteTree"), NULL }; gchar *todotitles[] = { _("Deadline"), _("Priority"), _("Complete"), _("Title"), NULL }; GtkWidget *app; GtkWidget *scrolledwindow1; GtkWidget *scrolledwindow2; GtkWidget *scrolledwindow3; GtkWidget *hbox; GtkWidget *hbox3; GtkWidget *vbox; GtkWidget *label; GdkFont *font; GtkObject *prio_adjust; /* gint got_crash; */ GtkWidget *b_toggle_ext_flags; GtkWidget *hbox_ext_flags; GtkWidget *hpaned; hpaned = app = yank->priv->hpaned; yank_main_app(app); sp->edit_tree = NULL; sp->title_entry =NULL; sp->todo_check =NULL; sp->prio_entry =NULL; sp->de_deadline =NULL; sp->ad_complete =NULL; sp->tlabel_created =NULL; sp->tlabel_changed =NULL; sp->label_changes =NULL; sp->tlabel_expire =NULL; sp->note_id_entry =NULL; sp->text_entry =NULL; sp->note_tree =NULL; sp->b_ok =NULL; sp->b_apply =NULL; sp->b_cancel =NULL; sp->todolist =NULL; sp->notebook =NULL; sp->status =NULL; sp->prio_date_box =NULL; sp->edit_tree=NULL; yank_root_win(GTK_WINDOW(app)); /* * main tree */ scrolledwindow1 = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); /* gtk_widget_show will be called later */ /* gtk_container_add(GTK_CONTAINER(hpaned), scrolledwindow1); */ e_paned_add1(E_PANED(hpaned), scrolledwindow1); sp->note_tree = gtk_ctree_new_with_titles(1, 0, treetitle); gtk_widget_show(sp->note_tree); gtk_container_add(GTK_CONTAINER(scrolledwindow1), sp->note_tree); gtk_clist_set_column_width(GTK_CLIST(sp->note_tree), 0, 80); gtk_clist_set_column_auto_resize(GTK_CLIST(sp->note_tree), 0, TRUE); gtk_clist_set_row_height(GTK_CLIST(sp->note_tree), 19); gtk_clist_set_selection_mode(GTK_CLIST(sp->note_tree), GTK_SELECTION_EXTENDED); gtk_clist_set_reorderable(GTK_CLIST(sp->note_tree), TRUE); gtk_clist_set_use_drag_icons(GTK_CLIST(sp->note_tree), TRUE); gtk_clist_column_titles_show(GTK_CLIST(sp->note_tree)); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "tree_select_row", GTK_SIGNAL_FUNC (note_tree_row_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "tree_unselect_row", GTK_SIGNAL_FUNC (note_tree_row_unselected), NULL); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "click_column", GTK_SIGNAL_FUNC (cb_note_tree_col_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->note_tree), "drag_data_received", GTK_SIGNAL_FUNC(cb_note_tree_reordered), NULL); /* * FIXME: * dnd on the note-tree disables reordering of notes by dnd */ /* gtk_signal_connect(GTK_OBJECT(sp->note_tree), "drag_data_received", */ /* GTK_SIGNAL_FUNC(cb_note_tree_drop), NULL); */ /* gtk_drag_dest_set(sp->note_tree, GTK_DEST_DEFAULT_MOTION | */ /* GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, */ /* drop_types, n_drop_types, GDK_ACTION_COPY); */ sp->notebook = gtk_notebook_new(); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sp->notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(sp->notebook), FALSE); gtk_widget_show(sp->notebook); /* gtk_container_add(GTK_CONTAINER(hpaned), sp->notebook); */ e_paned_add2(E_PANED(hpaned), sp->notebook); /* * todo-list */ scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(scrolledwindow2); gtk_container_add(GTK_CONTAINER(sp->notebook), scrolledwindow2); sp->todolist = gtk_clist_new_with_titles(4, todotitles); gtk_signal_connect(GTK_OBJECT(sp->todolist), "select_row", GTK_SIGNAL_FUNC (cb_todo_row_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->todolist), "click_column", GTK_SIGNAL_FUNC (cb_todo_col_selected), NULL); gtk_signal_connect(GTK_OBJECT(sp->todolist), "drag_data_received", GTK_SIGNAL_FUNC(cb_todo_list_drop), NULL); gtk_drag_dest_set(sp->todolist, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, drop_types, n_drop_types, GDK_ACTION_COPY); gtk_widget_show(sp->todolist); gtk_container_add(GTK_CONTAINER(scrolledwindow2), sp->todolist); gtk_clist_column_titles_show(GTK_CLIST(sp->todolist)); gtk_clist_set_column_auto_resize(GTK_CLIST(sp->todolist), 0 , TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(sp->todolist), 3 , TRUE); gtk_clist_set_column_justification(GTK_CLIST(sp->todolist), 1, GTK_JUSTIFY_RIGHT); gtk_clist_set_column_justification(GTK_CLIST(sp->todolist), 2, GTK_JUSTIFY_RIGHT); /* * text/ data */ vbox = gtk_vbox_new(FALSE, 3); gtk_widget_show(vbox); gtk_container_add(GTK_CONTAINER (sp->notebook), vbox); hbox = gtk_hbox_new(FALSE, 0); gtk_widget_show(hbox); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3); sp->prio_date_box = gtk_vbox_new(FALSE, 3); gtk_widget_show(sp->prio_date_box); gtk_box_pack_start(GTK_BOX(vbox), sp->prio_date_box, FALSE, FALSE, 0); hbox_ext_flags = gui_ext_flags(); gtk_box_pack_start(GTK_BOX(vbox), hbox_ext_flags, FALSE, FALSE, 3); label = gtk_label_new(_("Title:")); font = gtk_widget_get_style(label)->font; gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); sp->title_entry = gtk_entry_new(); gtk_widget_set_usize(sp->title_entry, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(sp->title_entry); gtk_box_pack_start(GTK_BOX(hbox), sp->title_entry, TRUE, TRUE, 5); sp->todo_check = gtk_check_button_new_with_label(_("Done")); gtk_widget_set_usize(sp->todo_check, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(sp->todo_check); gtk_box_pack_start(GTK_BOX(hbox), sp->todo_check, FALSE, FALSE, 5); /* * button for extra flags& data */ b_toggle_ext_flags = gtk_button_new(); { GtkWidget *p_up; GtkWidget *p_down; GtkWidget *box; box = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(b_toggle_ext_flags), box); gtk_widget_show(box); p_up = gnome_stock_pixmap_widget_at_size( GTK_WIDGET(yank_root_win(NULL)), GNOME_STOCK_BUTTON_UP, 12, 14); p_down = gnome_stock_pixmap_widget_at_size( GTK_WIDGET(yank_root_win(NULL)), GNOME_STOCK_BUTTON_DOWN, 12, 14); gtk_widget_hide(p_up); gtk_widget_show(p_down); gtk_container_add(GTK_CONTAINER(box), p_up); gtk_container_add(GTK_CONTAINER(box), p_down); gtk_object_set_data(GTK_OBJECT(b_toggle_ext_flags), "up", p_up); gtk_object_set_data(GTK_OBJECT(b_toggle_ext_flags), "down", p_down); } gtk_widget_show(b_toggle_ext_flags); gtk_box_pack_start(GTK_BOX(hbox), b_toggle_ext_flags, FALSE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(b_toggle_ext_flags), "clicked", GTK_SIGNAL_FUNC(cb_toggle_ext_flags), hbox_ext_flags); /* * deadline/ prio/ complete */ { GtkWidget *prio_hbox1; GtkWidget *prio_hbox2; GtkWidget *sc_complete; prio_hbox1 = gtk_hbox_new(FALSE, 0); gtk_widget_show(prio_hbox1); gtk_box_pack_start(GTK_BOX(sp->prio_date_box), prio_hbox1, FALSE, FALSE, 0); prio_hbox2 = gtk_hbox_new(FALSE, 0); gtk_widget_show(prio_hbox2); gtk_box_pack_start(GTK_BOX(sp->prio_date_box), prio_hbox2, FALSE, FALSE, 0); label = gtk_label_new(_("Deadline:")); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox1), label, FALSE, FALSE, 5); sp->de_deadline = gnome_date_edit_new(0, 1, 1); gnome_date_edit_set_popup_range(GNOME_DATE_EDIT(sp->de_deadline), 0, 23); gtk_widget_set_sensitive(GNOME_DATE_EDIT(sp->de_deadline)->date_entry, FALSE); gtk_widget_set_sensitive(GNOME_DATE_EDIT(sp->de_deadline)->time_entry, FALSE); gtk_widget_show(sp->de_deadline); gtk_box_pack_start(GTK_BOX(prio_hbox1), sp->de_deadline, FALSE, FALSE, 0); label = gtk_label_new(_("Priority:")); gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox1), label, FALSE, FALSE, 5); prio_adjust = gtk_adjustment_new(0, 0, 9999, 1, 10, 10); sp->prio_entry = gtk_spin_button_new(GTK_ADJUSTMENT(prio_adjust), 1, 0); /* NOTE: this is note 100% ok */ gtk_widget_set_usize(GTK_WIDGET(sp->prio_entry), gdk_string_width(font, "999999") + 10, gdk_string_height(font, "W") + 10); gtk_widget_show(sp->prio_entry); gtk_box_pack_start(GTK_BOX(prio_hbox1), sp->prio_entry, FALSE, FALSE, 0); label = gtk_label_new(_("Complete:")); gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox2), label, FALSE, FALSE, 5); sp->ad_complete = gtk_adjustment_new(0, 0, 101, 1, 1, 1); sc_complete = gtk_hscale_new(GTK_ADJUSTMENT(sp->ad_complete)); gtk_scale_set_digits(GTK_SCALE(sc_complete), 0); gtk_scale_set_value_pos(GTK_SCALE(sc_complete), GTK_POS_LEFT); gtk_widget_show(sc_complete); gtk_box_pack_start(GTK_BOX(prio_hbox2), sc_complete, TRUE, TRUE, 5); label = gtk_label_new(_("%")); gtk_widget_set_usize(label, -1, gdk_string_height(font, "W") + 10); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(prio_hbox2), label, FALSE, FALSE, 5); } /* * additional note data */ sp->note_id_entry = gtk_entry_new(); /* gtk_widget_show(sp->note_id_entry); */ gtk_widget_hide(sp->note_id_entry); gtk_box_pack_start(GTK_BOX(hbox), sp->note_id_entry, FALSE, FALSE, 5); /* * note text */ scrolledwindow3 = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(scrolledwindow3); gtk_box_pack_start(GTK_BOX(vbox), scrolledwindow3, TRUE, TRUE, 0); sp->text_entry = gtk_text_new(NULL, NULL); gtk_text_set_editable(GTK_TEXT(sp->text_entry), TRUE); gtk_widget_show(sp->text_entry); gtk_container_add(GTK_CONTAINER(scrolledwindow3), sp->text_entry); /* text dnd */ gtk_signal_connect(GTK_OBJECT(sp->text_entry), "drag_data_received", GTK_SIGNAL_FUNC(cb_text_entry_drop), NULL); gtk_drag_dest_set(sp->text_entry, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, drop_types, n_drop_types, GDK_ACTION_COPY); hbox3 = gtk_hbox_new(FALSE, 0); gtk_widget_show(hbox3); gtk_box_pack_start(GTK_BOX(vbox), hbox3, FALSE, FALSE, 3); sp->b_ok = gnome_stock_button(GNOME_STOCK_BUTTON_OK); gtk_widget_show(sp->b_ok); gtk_box_pack_start(GTK_BOX(hbox3), sp->b_ok, TRUE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(sp->b_ok), "clicked", GTK_SIGNAL_FUNC(cb_b_ok), NULL); sp->b_apply = gnome_stock_button(GNOME_STOCK_BUTTON_APPLY); gtk_widget_show(sp->b_apply); gtk_box_pack_start(GTK_BOX(hbox3), sp->b_apply, TRUE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(sp->b_apply), "clicked", GTK_SIGNAL_FUNC(cb_b_apply), NULL); sp->b_cancel = gnome_stock_button(GNOME_STOCK_BUTTON_CANCEL); gtk_widget_show(sp->b_cancel); gtk_box_pack_start(GTK_BOX(hbox3), sp->b_cancel, TRUE, FALSE, 5); gtk_signal_connect(GTK_OBJECT(sp->b_cancel), "clicked", GTK_SIGNAL_FUNC(cb_b_cancel), NULL); /* * a bit suboptimal */ gtk_signal_connect(GTK_OBJECT(sp->title_entry), "changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->de_deadline), "date-changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->de_deadline), "time-changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->tlabel_expire), "time_changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->prio_entry), "changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->ad_complete), "value_changed", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->ad_complete), "value_changed", GTK_SIGNAL_FUNC(cb_complete_updates_done), sp->todo_check); gtk_signal_connect(GTK_OBJECT(sp->todo_check), "toggled", GTK_SIGNAL_FUNC(note_changed), NULL); gtk_signal_connect(GTK_OBJECT(sp->text_entry), "changed", GTK_SIGNAL_FUNC(note_changed), NULL); /* * keyboard-control */ gtk_signal_connect(GTK_OBJECT(sp->title_entry), "activate", GTK_SIGNAL_FUNC(cb_finished_note), NULL); gtk_signal_connect(GTK_OBJECT(sp->text_entry), "activate", GTK_SIGNAL_FUNC(cb_finished_note), NULL); /* * create pixmaps */ pix_text_xpm = gnome_pixmap_new_from_xpm_d(text_xpm); gtk_widget_show(pix_text_xpm); pix_box_xpm = gnome_pixmap_new_from_xpm_d(box_xpm); gtk_widget_show(pix_box_xpm); pix_box2_xpm = gnome_pixmap_new_from_xpm_d(box2_xpm); gtk_widget_show(pix_box2_xpm); pix_circle_xpm = gnome_pixmap_new_from_xpm_d(circle_xpm); gtk_widget_show(pix_circle_xpm); pix_circle2_xpm = gnome_pixmap_new_from_xpm_d(circle2_xpm); gtk_widget_show(pix_circle2_xpm); /* * menus */ /* gnome_app_set_contents(GNOME_APP(app), hpaned); */ /* sp->status = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER); */ /* gnome_app_set_statusbar(GNOME_APP(app), sp->status); */ /* yank_install_menus_and_toolbar(app); */ yank_tree_item_context_menu(sp->note_tree); yank_todo_item_context_menu(sp->todolist); yank_text_item_context_menu(sp->title_entry); yank_text_item_context_menu(sp->text_entry); /* gtk_signal_connect(GTK_OBJECT(app), "delete_event", */ /* GTK_SIGNAL_FUNC(cb_delete_event), NULL); */ /* * initialize preferences * also preloads plugins */ load_preferences(); prefs = get_preferences(); gtk_text_set_word_wrap(GTK_TEXT(sp->text_entry), prefs->wordwrap); gtk_text_set_line_wrap(GTK_TEXT(sp->text_entry), prefs->linewrap); /* if (prefs->yank_width * prefs->yank_height) */ /* { */ /* gtk_window_set_default_size(GTK_WINDOW(app), prefs->yank_width, */ /* prefs->yank_height); */ /* } */ /* else */ /* { */ /* gtk_window_set_default_size(GTK_WINDOW(app), 600, 400); */ /* } */ if (prefs->use_custom_font) { if (prefs->note_font) { set_note_font_str(prefs->note_font); } if (prefs->note_tree_font) { set_note_tree_font_str(prefs->note_tree_font); } if (prefs->todolist_font) { set_todolist_font_str(prefs->todolist_font); } } else { set_default_font(); } /* * parse geometry if given */ /* if (geometry != NULL) */ /* { */ /* gint x, y, w, h; */ /* if (gnome_parse_geometry(geometry, &x, &y, &w, &h )) */ /* { */ /* if (x != -1) */ /* { */ /* gtk_widget_set_uposition(app, x, y); */ /* } */ /* */ /* if (w != -1) */ /* { */ /* gtk_window_set_default_size(GTK_WINDOW(app), w, h); */ /* } */ /* } */ /* else */ /* { */ /* g_error(_("Could not parse geometry string `%s'"), geometry); */ /* } */ /* } */ /* */ /* if (prefs->note_tree_width) */ /* { */ /* gtk_widget_set_usize(scrolledwindow1, prefs->note_tree_width, -1); */ /* } */ /* else */ /* { */ /* gtk_widget_set_usize(scrolledwindow1, 200, -1); */ /* } */ /* gtk_widget_show(scrolledwindow1); */ /* * try to read files from killed sessions */ /* got_crash = get_crash_file(); */ /* * load file from the command-line */ /* if (file != NULL && ! got_crash) */ /* { */ /* load_notes_from_cli((gchar *)file, GTK_CTREE(sp->note_tree), NULL); */ /* } */ /* * read default file */ /* if (file == NULL && ! got_crash) */ /* { */ /* get_def_file(); */ /* } */ /* * register some signal-handlers */ /* if (signal(SIGTERM, handle_sigterm) == SIG_ERR) */ /* { */ /* g_warning("Can't handle SIGTERM"); */ /* } */ /* if (signal(SIGCHLD, handle_sigchild) == SIG_ERR) */ /* { */ /* g_warning("Can't handle SIGCHILD"); */ /* } */ /* if (signal(SIGPIPE, handle_sigpipe) == SIG_ERR) */ /* { */ /* g_warning("Can't handle SIGPIPE"); */ /* } */ /* * init autosave */ /* if (prefs->auto_save_minutes) */ /* { */ /* autosave_notes(NULL); */ /* } */ return (hpaned); }
GtkWidget *CreateCameraInspectorDialog( void ) { GtkWidget *window, *w, *vbox, *hbox, *table, *frame; // create the window window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_window_set_title( GTK_WINDOW (window), "Camera Inspector" ); gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( ci_close ), NULL ); gtk_signal_connect( GTK_OBJECT (window), "expose_event", GTK_SIGNAL_FUNC( ci_expose ), NULL ); // gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pRadiantWnd ) ); // don't use show, as you don't want to have it displayed on startup ;-) gtk_widget_realize( window ); // fill the window // the table // -------------------------- // table = gtk_table_new( 3, 2, FALSE ); gtk_widget_show( table ); gtk_container_add( GTK_CONTAINER( window ), table ); gtk_container_set_border_width( GTK_CONTAINER( table ), 5 ); gtk_table_set_row_spacings( GTK_TABLE( table ), 5 ); gtk_table_set_col_spacings( GTK_TABLE( table ), 5 ); // the properties column // -------------------------- // vbox = gtk_vbox_new( FALSE, 5 ); gtk_widget_show( vbox ); gtk_table_attach( GTK_TABLE( table ), vbox, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0 ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "File:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pCamListCombo = gtk_combo_new(); gtk_box_pack_start (GTK_BOX( hbox ), g_pCamListCombo, TRUE, TRUE, 0); gtk_widget_show( g_pCamListCombo ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Name:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pCamName = gtk_entry_new(); gtk_box_pack_start( GTK_BOX( hbox ), g_pCamName, FALSE, FALSE, 0 ); gtk_widget_show( g_pCamName ); w = gtk_label_new( "Type: " ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); w = gtk_label_new( "" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pCamType = GTK_LABEL( w ); RefreshCamListCombo(); gtk_entry_set_editable( GTK_ENTRY( GTK_COMBO(g_pCamListCombo)->entry ), FALSE ); gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_pCamListCombo)->entry), "changed", GTK_SIGNAL_FUNC( ci_camlist_changed ), NULL ); // -------------------------- // frame = gtk_frame_new( "Path and Target editing" ); gtk_widget_show( frame ); gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0 ); vbox = gtk_vbox_new( FALSE, 5 ); gtk_container_add( GTK_CONTAINER( frame ), vbox ); gtk_container_set_border_width( GTK_CONTAINER (vbox), 5 ); gtk_widget_show( vbox ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Edit:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pPathListCombo = gtk_combo_new(); gtk_box_pack_start (GTK_BOX( hbox ), g_pPathListCombo, TRUE, TRUE, 0); gtk_widget_show( g_pPathListCombo ); RefreshPathListCombo(); gtk_entry_set_editable( GTK_ENTRY( GTK_COMBO(g_pPathListCombo)->entry ), FALSE ); gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_pPathListCombo)->entry), "changed", GTK_SIGNAL_FUNC( ci_pathlist_changed ), NULL ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); g_pEditModeEditRadioButton = gtk_radio_button_new_with_label( g_pEditTypeRadio, "Edit Points" ); gtk_box_pack_start( GTK_BOX( hbox ), g_pEditModeEditRadioButton, FALSE, FALSE, 3 ); gtk_widget_show( g_pEditModeEditRadioButton ); g_pEditTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( g_pEditModeEditRadioButton ) ); gtk_signal_connect( GTK_OBJECT( g_pEditModeEditRadioButton ), "clicked", GTK_SIGNAL_FUNC( ci_editmode_edit ), NULL ); g_pEditModeAddRadioButton = gtk_radio_button_new_with_label( g_pEditTypeRadio, "Add Points" ); gtk_box_pack_start( GTK_BOX( hbox ), g_pEditModeAddRadioButton, FALSE, FALSE, 3 ); gtk_widget_show( g_pEditModeAddRadioButton ); g_pEditTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( g_pEditModeAddRadioButton ) ); gtk_signal_connect( GTK_OBJECT( g_pEditModeAddRadioButton ), "clicked", GTK_SIGNAL_FUNC( ci_editmode_add ), NULL ); // see if we should use a different default if( g_iEditMode == 1 ) { // Go to editmode Add gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(g_pEditModeAddRadioButton), TRUE ); } w = gtk_label_new( "Type: " ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); w = gtk_label_new( "" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pPathType = GTK_LABEL( w ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_button_new_with_label( "Rename..." ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_rename ), NULL ); gtk_widget_show( w ); w = gtk_button_new_with_label( "Add Target..." ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_add_target ), NULL ); gtk_widget_show( w ); // not available in splines library /*w = gtk_button_new_with_label( "Delete Selected" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_delete_selected ), NULL ); gtk_widget_show( w ); w = gtk_button_new_with_label( "Select All" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, TRUE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_select_all ), NULL ); gtk_widget_show( w );*/ // -------------------------- // frame = gtk_frame_new( "Time" ); gtk_widget_show( frame ); gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0 ); vbox = gtk_vbox_new( FALSE, 5 ); gtk_container_add( GTK_CONTAINER( frame ), vbox ); gtk_container_set_border_width( GTK_CONTAINER (vbox), 5 ); gtk_widget_show( vbox ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Length (seconds):" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pSecondsEntry = gtk_entry_new(); gtk_box_pack_start( GTK_BOX( hbox ), g_pSecondsEntry, FALSE, FALSE, 0 ); gtk_widget_show( g_pSecondsEntry ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Current Time: " ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); w = gtk_label_new( "0.00" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pCurrentTime = GTK_LABEL( w ); w = gtk_label_new( " of " ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); w = gtk_label_new( "0.00" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); g_pTotalTime = GTK_LABEL( w ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); g_pTimeLine = GTK_ADJUSTMENT( gtk_adjustment_new( 0, 0, 30000, 100, 250, 0 ) ); gtk_signal_connect( GTK_OBJECT(g_pTimeLine), "value_changed", GTK_SIGNAL_FUNC( ci_timeline_changed ), NULL ); w = gtk_hscale_new( g_pTimeLine ); gtk_box_pack_start( GTK_BOX( hbox ), w, TRUE, TRUE, 0 ); gtk_widget_show( w ); gtk_scale_set_draw_value( GTK_SCALE( w ), FALSE ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); g_pTrackCamera = gtk_check_button_new_with_label( "Track Camera" ); gtk_box_pack_start( GTK_BOX( hbox ), g_pTrackCamera, FALSE, FALSE, 0 ); gtk_widget_show( g_pTrackCamera ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Events:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_scrolled_window_new( NULL, NULL ); gtk_widget_set_usize( w, 0, 150 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( w ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); gtk_box_pack_start( GTK_BOX( hbox ), w, TRUE, TRUE, 0 ); gtk_widget_show( w ); g_pEventsList = gtk_clist_new( 3 ); gtk_container_add( GTK_CONTAINER(w), g_pEventsList); //gtk_signal_connect( GTK_OBJECT(g_pEventsList), "select_row", GTK_SIGNAL_FUNC (proplist_select_row), NULL); gtk_clist_set_selection_mode( GTK_CLIST(g_pEventsList), GTK_SELECTION_BROWSE ); gtk_clist_column_titles_hide( GTK_CLIST(g_pEventsList) ); gtk_clist_set_column_auto_resize( GTK_CLIST(g_pEventsList), 0, TRUE ); gtk_clist_set_column_auto_resize( GTK_CLIST(g_pEventsList), 1, TRUE ); gtk_clist_set_column_auto_resize( GTK_CLIST(g_pEventsList), 2, TRUE ); gtk_widget_show( g_pEventsList ); vbox = gtk_vbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( hbox ), vbox, FALSE, FALSE, 0 ); gtk_widget_show( vbox ); w = gtk_button_new_with_label( "Add..." ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_add ), NULL ); gtk_widget_show( w ); w = gtk_button_new_with_label( "Del" ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_del ), NULL ); gtk_widget_show( w ); // -------------------------- // /*/ | | | */ // the buttons column // -------------------------- // vbox = gtk_vbox_new( FALSE, 5 ); gtk_widget_show( vbox ); gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0 ); w = gtk_button_new_with_label( "New..." ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_new ), NULL ); gtk_widget_show( w ); w = gtk_button_new_with_label( "Load..." ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_load ), NULL ); gtk_widget_show( w ); // -------------------------- // vbox = gtk_vbox_new( FALSE, 5 ); gtk_widget_show( vbox ); gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0 ); w = gtk_button_new_with_label( "Save..." ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_save ), NULL ); gtk_widget_show( w ); w = gtk_button_new_with_label( "Unload" ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_unload ), NULL ); gtk_widget_show( w ); hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, TRUE, TRUE, 0 ); gtk_widget_show( hbox ); w = gtk_button_new_with_label( "Apply" ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_apply ), NULL ); gtk_widget_show( w ); w = gtk_button_new_with_label( "Preview" ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_preview ), NULL ); gtk_widget_show( w ); // -------------------------- // vbox = gtk_vbox_new( FALSE, 5 ); gtk_widget_show( vbox ); gtk_table_attach( GTK_TABLE( table ), vbox, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0 ); hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, TRUE, TRUE, 0 ); gtk_widget_show( hbox ); w = gtk_button_new_with_label( "Close" ); gtk_box_pack_start( GTK_BOX( vbox ), w, FALSE, FALSE, 0); gtk_signal_connect( GTK_OBJECT( w ), "clicked", GTK_SIGNAL_FUNC( ci_close ), NULL ); GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); gtk_widget_grab_default( w ); gtk_widget_show( w ); // -------------------------- // return window; }
static int show_console(void) { GtkWidget *hbox; GtkWidget *wbox; GtkWidget *notebook; GtkWidget *sw; GtkWidget *bbox, *hbbox, *add, *removew, *reloadw; char *modtitles[3] = { "Module", "Description", "Use Count" }; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); statusbar = gtk_statusbar_new(); gtk_widget_show(statusbar); gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC (exit_nicely), window); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC (exit_now), window); gtk_container_set_border_width(GTK_CONTAINER(window), 10); quit = gtk_button_new_with_label("Quit Asterisk"); gtk_signal_connect(GTK_OBJECT(quit), "clicked", GTK_SIGNAL_FUNC (exit_completely), window); gtk_widget_show(quit); closew = gtk_button_new_with_label("Close Window"); gtk_signal_connect(GTK_OBJECT(closew), "clicked", GTK_SIGNAL_FUNC (exit_nicely), window); gtk_widget_show(closew); notebook = gtk_notebook_new(); verb = gtk_clist_new(1); gtk_clist_columns_autosize(GTK_CLIST(verb)); sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add(GTK_CONTAINER(sw), verb); gtk_widget_show(verb); gtk_widget_show(sw); gtk_widget_set_usize(verb, 640, 400); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), sw, gtk_label_new("Verbose Status")); modules = gtk_clist_new_with_titles(3, modtitles); gtk_clist_columns_autosize(GTK_CLIST(modules)); gtk_clist_set_column_auto_resize(GTK_CLIST(modules), 0, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(modules), 1, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(modules), 2, TRUE); gtk_clist_set_sort_column(GTK_CLIST(modules), 0); gtk_clist_set_auto_sort(GTK_CLIST(modules), TRUE); gtk_clist_column_titles_passive(GTK_CLIST(modules)); sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add(GTK_CONTAINER(sw), modules); gtk_clist_set_selection_mode(GTK_CLIST(modules), GTK_SELECTION_BROWSE); gtk_widget_show(modules); gtk_widget_show(sw); add = gtk_button_new_with_label("Load..."); gtk_widget_show(add); removew = gtk_button_new_with_label("Unload"); gtk_widget_show(removew); reloadw = gtk_button_new_with_label("Reload"); gtk_widget_show(reloadw); gtk_signal_connect(GTK_OBJECT(removew), "clicked", GTK_SIGNAL_FUNC (remove_module), window); gtk_signal_connect(GTK_OBJECT(add), "clicked", GTK_SIGNAL_FUNC (add_module), window); gtk_signal_connect(GTK_OBJECT(reloadw), "clicked", GTK_SIGNAL_FUNC (reload_module), window); bbox = gtk_vbox_new(FALSE, 5); gtk_widget_show(bbox); gtk_widget_set_usize(bbox, 100, -1); gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(bbox), removew, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(bbox), reloadw, FALSE, FALSE, 5); hbbox = gtk_hbox_new(FALSE, 5); gtk_widget_show(hbbox); gtk_box_pack_start(GTK_BOX(hbbox), sw, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(hbbox), bbox, FALSE, FALSE, 5); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbbox, gtk_label_new("Module Information")); gtk_widget_show(notebook); wbox = gtk_hbox_new(FALSE, 5); gtk_widget_show(wbox); gtk_box_pack_end(GTK_BOX(wbox), quit, FALSE, FALSE, 5); gtk_box_pack_end(GTK_BOX(wbox), closew, FALSE, FALSE, 5); hbox = gtk_vbox_new(FALSE, 0); gtk_widget_show(hbox); /* Command line */ cli = gtk_entry_new(); gtk_widget_show(cli); gtk_signal_connect(GTK_OBJECT(cli), "activate", GTK_SIGNAL_FUNC (cli_activate), NULL); gtk_box_pack_start(GTK_BOX(hbox), notebook, TRUE, TRUE, 5); gtk_box_pack_start(GTK_BOX(hbox), wbox, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(hbox), cli, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), statusbar, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(window), hbox); gtk_window_set_title(GTK_WINDOW(window), "Asterisk Console"); gtk_widget_grab_focus(cli); ast_pthread_create(&console_thread, NULL, consolethread, NULL); /* XXX Okay, seriously fix me! XXX */ usleep(100000); ast_register_verbose(verboser); gtk_clist_freeze(GTK_CLIST(verb)); ast_loader_register(mod_update); gtk_clist_thaw(GTK_CLIST(verb)); gdk_input_add(clipipe[0], GDK_INPUT_READ, cliinput, NULL); mod_update(); update_statusbar("Asterisk Console Ready"); return 0; }
void create_loglist(void) { GtkWidget *mvb,*sw,*dhb,*dhw[30]; GdkBitmap *mask; GdkPixmap *myicon; GtkStyle *style; GList *pt; int i; applet=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(applet),780,510); gtk_window_set_title (GTK_WINDOW (applet), "YAWMPPP Connection Log"); gtk_window_set_wmclass(GTK_WINDOW(applet),"yawmppp","log"); gtk_container_set_border_width(GTK_CONTAINER(applet),4); gtk_widget_show (applet); style=gtk_widget_get_style(applet); myicon = gdk_pixmap_create_from_xpm_d (applet->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) stepphone_xpm); gdk_window_set_icon (applet->window, NULL, myicon, mask); gdk_window_set_icon_name(applet->window,"The Log"); mvb=gtk_vbox_new(FALSE,0); gtk_container_add(GTK_CONTAINER(applet),mvb); dhb=gtk_hbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(mvb),dhb,FALSE,TRUE,0); /* data */ dhw[0]=gtk_label_new("Show summary for:"); gtk_box_pack_start(GTK_BOX(dhb),dhw[0],FALSE,FALSE,4); dhw[1]=gtk_option_menu_new(); gtk_box_pack_start(GTK_BOX(dhb),dhw[1],FALSE,FALSE,2); dhw[2]=gtk_menu_new(); for(i=0;i<10;i++) { dhw[3]=gtk_menu_item_new_with_label(resumeo[i]); gtk_signal_connect(GTK_OBJECT(dhw[3]),"activate", GTK_SIGNAL_FUNC(time_menu),&nsrc[i]); gtk_menu_append(GTK_MENU(dhw[2]),dhw[3]); gtk_widget_show(dhw[3]); } gtk_option_menu_set_menu(GTK_OPTION_MENU(dhw[1]),dhw[2]); dhw[12]=gtk_label_new("include entries from"); gtk_box_pack_start(GTK_BOX(dhb),dhw[12],FALSE,FALSE,4); dhw[13]=gtk_option_menu_new(); gtk_box_pack_start(GTK_BOX(dhb),dhw[13],FALSE,FALSE,2); dhw[14]=gtk_menu_new(); for(i=0,pt=isps;pt!=NULL;pt=g_list_next(pt),i++) { dhw[3]=gtk_menu_item_new_with_label((char *)(pt->data)); gtk_signal_connect(GTK_OBJECT(dhw[3]),"activate", GTK_SIGNAL_FUNC(isp_menu),&nsrc[i]); gtk_menu_append(GTK_MENU(dhw[14]),dhw[3]); gtk_widget_show(dhw[3]); } gtk_option_menu_set_menu(GTK_OPTION_MENU(dhw[13]),dhw[14]); dhw[15]=gtk_label_new("include connections as"); gtk_box_pack_start(GTK_BOX(dhb),dhw[15],FALSE,FALSE,4); dhw[16]=gtk_option_menu_new(); gtk_box_pack_start(GTK_BOX(dhb),dhw[16],FALSE,FALSE,2); dhw[17]=gtk_menu_new(); for(i=0,pt=users;pt!=NULL;pt=g_list_next(pt),i++) { dhw[3]=gtk_menu_item_new_with_label((char *)(pt->data)); gtk_signal_connect(GTK_OBJECT(dhw[3]),"activate", GTK_SIGNAL_FUNC(user_menu),&nsrc[i]); gtk_menu_append(GTK_MENU(dhw[17]),dhw[3]); gtk_widget_show(dhw[3]); } gtk_option_menu_set_menu(GTK_OPTION_MENU(dhw[16]),dhw[17]); dhw[5]=gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(mvb),dhw[5],FALSE,FALSE,3); dhw[3]=gtk_hbox_new(FALSE,4); gtk_box_pack_start(GTK_BOX(mvb),dhw[3],FALSE,TRUE,3); dhw[4]=lresume[0]=gtk_label_new("\n\n\n\n\n"); dhw[6]=lresume[1]=gtk_label_new("\n\n\n\n\n"); for(i=0;i<2;i++) gtk_label_set_justify(GTK_LABEL(lresume[i]),GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[4],FALSE,TRUE,4); gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[6],FALSE,TRUE,4); hgraph=dhw[7]=gtk_drawing_area_new(); gtk_drawing_area_size(GTK_DRAWING_AREA(dhw[7]),24*9+2,120); gtk_widget_set_events(dhw[7],GDK_EXPOSURE_MASK); gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[7],FALSE,FALSE,4); wgraph=dhw[8]=gtk_drawing_area_new(); gtk_drawing_area_size(GTK_DRAWING_AREA(dhw[8]),7*20+2,120); gtk_widget_set_events(dhw[8],GDK_EXPOSURE_MASK); gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[8],FALSE,FALSE,4); dhw[11]=gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(mvb),dhw[11],FALSE,FALSE,4); dhw[9]=gtk_hbox_new(FALSE,2); dhw[10]=gtk_label_new("Raw log listing (unfiltered):"); gtk_box_pack_start(GTK_BOX(mvb),dhw[9],FALSE,FALSE,4); gtk_box_pack_start(GTK_BOX(dhw[9]),dhw[10],FALSE,FALSE,2); /* list */ sw=gtk_scrolled_window_new(NULL,NULL); gtk_box_pack_start(GTK_BOX(mvb),sw,TRUE,TRUE,4); gtk_widget_show(sw); gtk_container_set_border_width(GTK_CONTAINER(sw),0); loglist=gtk_clist_new(8); gtk_clist_set_shadow_type(GTK_CLIST(loglist),GTK_SHADOW_IN); gtk_clist_set_selection_mode(GTK_CLIST(loglist),GTK_SELECTION_SINGLE); for(i=0;i<8;i++) { gtk_clist_set_column_title(GTK_CLIST(loglist),i,titles[i]); gtk_clist_set_column_width(GTK_CLIST(loglist),i,colsize[i]); } gtk_clist_column_titles_passive(GTK_CLIST(loglist)); gtk_clist_column_titles_show(GTK_CLIST(loglist)); gtk_clist_set_row_height(GTK_CLIST(loglist),16); gtk_clist_set_column_auto_resize(GTK_CLIST(loglist),1,FALSE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add(GTK_CONTAINER(sw),loglist); gtk_widget_show(loglist); /* bottom */ dhw[18]=gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(mvb),dhw[18],FALSE,FALSE,4); dhw[19]=gtk_table_new(1,6,TRUE); dhw[21]=gtk_button_new_with_label(" About... "); dhw[22]=gtk_button_new_with_label(" Close "); dhw[23]=gtk_hbox_new(TRUE,6); gtk_box_pack_start(GTK_BOX(mvb),dhw[19],FALSE,FALSE,4); gtk_table_attach_defaults(GTK_TABLE(dhw[19]),dhw[23],4,6,0,1); gtk_box_pack_start(GTK_BOX(dhw[23]),dhw[21],FALSE,TRUE,4); gtk_box_pack_start(GTK_BOX(dhw[23]),dhw[22],FALSE,TRUE,4); for(i=0;i<24;i++) if (i!=20) gtk_widget_show(dhw[i]); gtk_widget_show(dhb); gtk_widget_show(mvb); iconmap[0] = gdk_pixmap_create_from_xpm_d (applet->window, &maskmap[0], &style->bg[GTK_STATE_NORMAL], (gchar **) status_ok_xpm); iconmap[1] = gdk_pixmap_create_from_xpm_d (applet->window, &maskmap[1], &style->bg[GTK_STATE_NORMAL], (gchar **) status_error_xpm); iconmap[2] = gdk_pixmap_create_from_xpm_d (applet->window, &maskmap[2], &style->bg[GTK_STATE_NORMAL], (gchar **) status_crash_xpm); /* signal plumbing */ gtk_signal_connect (GTK_OBJECT (applet), "delete_event", GTK_SIGNAL_FUNC (applet_kill), NULL); gtk_signal_connect (GTK_OBJECT (applet), "destroy", GTK_SIGNAL_FUNC (applet_destroy), NULL); gtk_signal_connect (GTK_OBJECT (hgraph), "expose_event", GTK_SIGNAL_FUNC (hgra_expose), NULL); gtk_signal_connect (GTK_OBJECT (hgraph), "configure_event", GTK_SIGNAL_FUNC (hgra_configure), NULL); gtk_signal_connect (GTK_OBJECT (wgraph), "expose_event", GTK_SIGNAL_FUNC (wgra_expose), NULL); gtk_signal_connect (GTK_OBJECT (wgraph), "configure_event", GTK_SIGNAL_FUNC (wgra_configure), NULL); gtk_signal_connect (GTK_OBJECT (dhw[21]), "clicked", GTK_SIGNAL_FUNC (applet_about), (gpointer)GTK_WINDOW(applet)); gtk_signal_connect (GTK_OBJECT (dhw[22]), "clicked", GTK_SIGNAL_FUNC (applet_destroy), NULL); }
void Launch_Gtk_Process(int pipe_number) { int argc = 0; gchar **argv = NULL; GtkWidget *button, *mbar, *swin; GtkWidget *table, *align, *handlebox; GtkWidget *vbox, *hbox, *vbox2, *scrolled_win; GtkObject *adj; /* enable locale */ gtk_set_locale (); gtk_init (&argc, &argv); ttip = create_yellow_tooltips(); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_name(window, "TiMidity"); gtk_window_set_title(GTK_WINDOW(window), "TiMidity - MIDI Player"); gtk_window_set_wmclass(GTK_WINDOW(window), "timidity", "TiMidity"); gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); mbar = create_menubar(); gtk_box_pack_start(GTK_BOX(vbox), mbar, FALSE, FALSE, 0); scrolled_win = gtk_scrolled_window_new(NULL, NULL); gtk_box_pack_start(GTK_BOX(vbox), scrolled_win, TRUE, TRUE ,0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_widget_show(scrolled_win); #ifdef HAVE_GTK_2 text = gtk_text_view_new(); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD); #else text = gtk_text_new(NULL, NULL); #endif gtk_widget_show(text); gtk_container_add(GTK_CONTAINER(scrolled_win), text); hbox = gtk_hbox_new(FALSE, 4); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 4); gtk_widget_show(hbox); adj = gtk_adjustment_new(0., 0., 100., 1., 20., 0.); locator = gtk_hscale_new(GTK_ADJUSTMENT(adj)); gtk_scale_set_draw_value(GTK_SCALE(locator), TRUE); gtk_signal_connect(GTK_OBJECT(adj), "value_changed", GTK_SIGNAL_FUNC(generic_scale_cb), (gpointer)GTK_CHANGE_LOCATOR); gtk_signal_connect(GTK_OBJECT(locator), "button_press_event", GTK_SIGNAL_FUNC(locate_update_cb), NULL); gtk_signal_connect(GTK_OBJECT(locator), "button_release_event", GTK_SIGNAL_FUNC(locate_update_cb), NULL); gtk_range_set_update_policy(GTK_RANGE(locator), GTK_UPDATE_DISCONTINUOUS); gtk_scale_set_digits(GTK_SCALE(locator), 0); gtk_widget_show(locator); gtk_box_pack_start(GTK_BOX(hbox), locator, TRUE, TRUE, 4); align = gtk_alignment_new(0., 1., 1., 0.); gtk_widget_show(align); cnt_lbl = gtk_label_new("00:00"); gtk_widget_show(cnt_lbl); gtk_container_add(GTK_CONTAINER(align), cnt_lbl); gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, TRUE, 0); align = gtk_alignment_new(0., 1., 1., 0.); gtk_widget_show(align); tot_lbl = gtk_label_new("/00:00"); gtk_widget_show(tot_lbl); gtk_container_add(GTK_CONTAINER(align), tot_lbl); gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, TRUE, 0); hbox = gtk_hbox_new(FALSE, 4); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 4); swin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); clist = gtk_clist_new(1); gtk_container_add(GTK_CONTAINER(swin), clist); gtk_widget_show(swin); gtk_widget_show(clist); gtk_widget_set_usize(clist, 200, 10); gtk_clist_set_reorderable(GTK_CLIST(clist), TRUE); gtk_clist_set_button_actions(GTK_CLIST(clist), 0, GTK_BUTTON_SELECTS); gtk_clist_set_button_actions(GTK_CLIST(clist), 1, GTK_BUTTON_DRAGS); gtk_clist_set_button_actions(GTK_CLIST(clist), 2, GTK_BUTTON_SELECTS); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_SINGLE); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 1, TRUE); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(file_list_cb), NULL); gtk_box_pack_start(GTK_BOX(hbox), swin, TRUE, TRUE, 0); vbox2 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0); gtk_widget_show(vbox2); /* This is so the pixmap creation works properly. */ gtk_widget_realize(window); set_icon_pixmap(window, timidity_xpm); gtk_box_pack_start(GTK_BOX(vbox2), create_pixmap_label(window, loud_xpm), FALSE, FALSE, 0); adj = gtk_adjustment_new(30., 0., (gfloat)MAX_AMPLIFICATION, 1., 20., 0.); vol_scale = gtk_vscale_new(GTK_ADJUSTMENT(adj)); gtk_scale_set_draw_value(GTK_SCALE(vol_scale), FALSE); gtk_signal_connect (GTK_OBJECT(adj), "value_changed", GTK_SIGNAL_FUNC(generic_scale_cb), (gpointer)GTK_CHANGE_VOLUME); gtk_range_set_update_policy(GTK_RANGE(vol_scale), GTK_UPDATE_DELAYED); gtk_widget_show(vol_scale); gtk_tooltips_set_tip(ttip, vol_scale, "Volume control", NULL); gtk_box_pack_start(GTK_BOX(vbox2), vol_scale, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox2), create_pixmap_label(window, quiet_xpm), FALSE, FALSE, 0); handlebox = gtk_handle_box_new(); gtk_box_pack_start(GTK_BOX(hbox), handlebox, FALSE, FALSE, 0); table = gtk_table_new(7, 2, TRUE); gtk_container_add(GTK_CONTAINER(handlebox), table); button = create_button_with_pixmap(window, playpaus_xpm, GTK_PAUSE, "Play/Pause"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 2, 0, 1); button = create_button_with_pixmap(window, prevtrk_xpm, GTK_PREV, "Previous file"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 1, 2); button = create_button_with_pixmap(window, nexttrk_xpm, GTK_NEXT, "Next file"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 1, 2); button = create_button_with_pixmap(window, rew_xpm, GTK_RWD, "Rewind"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 2, 3); button = create_button_with_pixmap(window, ff_xpm, GTK_FWD, "Fast forward"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 2, 3); button = create_button_with_pixmap(window, keydown_xpm, GTK_KEYDOWN, "Lower pitch"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 3, 4); button = create_button_with_pixmap(window, keyup_xpm, GTK_KEYUP, "Raise pitch"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 3, 4); button = create_button_with_pixmap(window, slow_xpm, GTK_SLOWER, "Decrease tempo"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 4, 5); button = create_button_with_pixmap(window, fast_xpm, GTK_FASTER, "Increase tempo"); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 4, 5); button = create_button_with_pixmap(window, restart_xpm, GTK_RESTART, "Restart"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 5, 6); button = create_button_with_pixmap(window, open_xpm, 0, "Open"); #ifdef HAVE_GTK_2 gtk_signal_disconnect_by_func(GTK_OBJECT(button), G_CALLBACK(generic_cb), 0); #else gtk_signal_disconnect_by_func(GTK_OBJECT(button), generic_cb, 0); #endif gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(open_file_cb), 0); gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 5, 6); button = create_button_with_pixmap(window, quit_xpm, GTK_QUIT, "Quit"); gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 2, 6, 7); gtk_widget_show(hbox); gtk_widget_show(vbox); gtk_widget_show(table); gtk_widget_show(handlebox); gtk_widget_show(window); gdk_input_add(pipe_number, GDK_INPUT_READ, handle_input, NULL); gtk_main(); }
static void create_config(GtkWidget *tab) { GtkWidget *tabs; GtkWidget *text, *label, *panel, *button, *hbox, *scrolled, *frame, *vbox; GtkObject *adj; gchar *plugin_about_text; gchar *station_tab_titles[3] = { _("Station"), _("Frequency"), "" }; char *f[3]; int i; tabs = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tabs),GTK_POS_TOP); gtk_box_pack_start(GTK_BOX(tab),tabs,TRUE,TRUE,0); /* STATION TAB */ panel = gtk_vbox_new(0, 0); gui_station_list = gtk_clist_new_with_titles(3, station_tab_titles); gtk_clist_set_column_auto_resize(GTK_CLIST(gui_station_list), 0, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(gui_station_list), 0, TRUE); gtk_clist_set_reorderable(GTK_CLIST(gui_station_list), TRUE); gtk_clist_set_column_justification(GTK_CLIST(gui_station_list), 1, GTK_JUSTIFY_RIGHT); /* fill data in clist */ f[1] = malloc(32); f[2] = ""; for (i = 0; i< nstations; i++) { f[0] = stations[i].station_name; snprintf(f[1],32, "%.2f", stations[i].freq); gtk_clist_append(GTK_CLIST(gui_station_list), f); } gui_station_count = nstations; free(f[1]); gtk_signal_connect(GTK_OBJECT(gui_station_list), "select-row", (GtkSignalFunc)gui_select_row, NULL); scrolled = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scrolled),gui_station_list); gtk_container_add(GTK_CONTAINER(panel), scrolled); hbox = gtk_hbox_new(0, 0); button = gtk_button_new_with_label(_("New")); gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)gui_new_station, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 2); button = gtk_button_new_with_label(_("Edit")); gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)gui_edit_station, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 2); button = gtk_button_new_with_label(_("Delete")); gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)gui_delete_station, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 2); button = gtk_button_new_with_label(_("Up")); gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)gui_moveup_station, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 2); button = gtk_button_new_with_label(_("Down")); gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc)gui_movedown_station, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 2); label = gtk_label_new(_("Stations")); gtk_box_pack_start(GTK_BOX(panel), hbox, FALSE, FALSE, 4); gtk_notebook_append_page(GTK_NOTEBOOK(tabs), panel, label); /* OPTIONS TAB */ vbox = gtk_vbox_new(0,0); /* mutetime */ { hbox = gtk_hbox_new(0, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, 0, 0, 2); label = gtk_label_new(_("Time to mute on channel jump (seconds):")); gtk_box_pack_start(GTK_BOX(hbox), label, 0, 0, 2); adj = gtk_adjustment_new(mutetime, 0.0, 9.99, 0.01, 0.1, 1); gui_mutetime_entry = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0.01, 2); gtk_spin_button_set_value(GTK_SPIN_BUTTON(gui_mutetime_entry), mutetime); gtk_box_pack_start(GTK_BOX(hbox), gui_mutetime_entry, 0, 0, 2); } /* reopenoption */ { gui_reopen_toggle = gtk_check_button_new_with_label(_("Attempt to reopen radio on startup")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gui_reopen_toggle), attempt_reopen); gtk_box_pack_start(GTK_BOX(vbox), gui_reopen_toggle, 0, 0, 2); /* close radio on exit toggle */ gui_close_toggle = gtk_check_button_new_with_label(_("Turn radio off when exiting gkrellm")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gui_close_toggle), close_atexit); gtk_box_pack_start(GTK_BOX(vbox), gui_close_toggle, 0, 0, 2); } label = gtk_label_new(_("Options")); gtk_notebook_append_page(GTK_NOTEBOOK(tabs), vbox, label); /* INFO TAB */ frame = gtk_frame_new(NULL); scrolled = gkrellm_gtk_notebook_page(tabs,_("Info")); text = gkrellm_gtk_scrolled_text_view(scrolled,NULL, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); for (i=0; i < sizeof(info_text)/sizeof(gchar *); ++i) gkrellm_gtk_text_view_append(text, _(info_text[i])); /* ABOUT TAB */ plugin_about_text = g_strdup_printf( _("Radio Plugin %s\n" \ "GKrellM radio Plugin\n\n" \ "Copyright (C) 2001-2002 Sjoerd Simons\n" \ "[email protected]\n" \ "http://gkrellm.luon.net/gkrellm-radio.phtml\n\n" \ "Released under the GNU General Public Licence"), VERSION); text = gtk_label_new(plugin_about_text); label = gtk_label_new(_("About")); gtk_notebook_append_page(GTK_NOTEBOOK(tabs),text,label); g_free(plugin_about_text); }
/* * mainline.. */ void treebox(char *title, GtkSignalFunc func) { GtkWidget *scrolled_win; GtkWidget *hbox; GtkWidget *button1, *button2, *button3, *button3a, *button4, *button5; GtkWidget *frame2, *frameh; GtkWidget *table; GtkTooltips *tooltips; GtkCList *clist; if(is_active) { gdk_window_raise(window->window); return; } is_active=1; cleanup=func; /* create a new modal window */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (window), title); gtk_signal_connect(GTK_OBJECT (window), "delete_event", (GtkSignalFunc) destroy_callback, NULL); tooltips=gtk_tooltips_new_2(); table = gtk_table_new (256, 1, FALSE); gtk_widget_show (table); frame2 = gtk_frame_new (NULL); gtk_container_border_width (GTK_CONTAINER (frame2), 3); gtk_widget_show(frame2); gtk_table_attach (GTK_TABLE (table), frame2, 0, 1, 0, 255, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 1, 1); tree=gtk_ctree_new(1,0); ctree_main=GTK_CTREE(tree); gtk_clist_set_column_auto_resize (GTK_CLIST (tree), 0, TRUE); gtk_widget_show(tree); clist=GTK_CLIST(tree); gtk_signal_connect_object (GTK_OBJECT (clist), "select_row", GTK_SIGNAL_FUNC(select_row_callback), NULL); gtk_signal_connect_object (GTK_OBJECT (clist), "unselect_row", GTK_SIGNAL_FUNC(unselect_row_callback), NULL); gtk_clist_freeze(clist); gtk_clist_clear(clist); maketree(NULL, treeroot); gtk_clist_thaw(clist); selectedtree=NULL; scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_usize( GTK_WIDGET (scrolled_win), -1, 300); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(scrolled_win); gtk_container_add (GTK_CONTAINER (scrolled_win), GTK_WIDGET (tree)); gtk_container_add (GTK_CONTAINER (frame2), scrolled_win); frameh = gtk_frame_new (NULL); gtk_container_border_width (GTK_CONTAINER (frameh), 3); gtk_widget_show(frameh); gtk_table_attach (GTK_TABLE (table), frameh, 0, 1, 255, 256, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 1, 1); hbox = gtk_hbox_new (FALSE, 1); gtk_widget_show (hbox); button1 = gtk_button_new_with_label ("Append"); gtk_container_border_width (GTK_CONTAINER (button1), 3); gtk_signal_connect_object (GTK_OBJECT (button1), "clicked", GTK_SIGNAL_FUNC(ok_callback), GTK_OBJECT (window)); gtk_widget_show (button1); gtk_tooltips_set_tip_2(tooltips, button1, "Add selected signal hierarchy to end of the display on the main window.",NULL); gtk_box_pack_start (GTK_BOX (hbox), button1, TRUE, FALSE, 0); button2 = gtk_button_new_with_label (" Insert "); gtk_container_border_width (GTK_CONTAINER (button2), 3); gtk_signal_connect_object (GTK_OBJECT (button2), "clicked", GTK_SIGNAL_FUNC(insert_callback), GTK_OBJECT (window)); gtk_widget_show (button2); gtk_tooltips_set_tip_2(tooltips, button2, "Add selected signal hierarchy after last highlighted signal on the main window.",NULL); gtk_box_pack_start (GTK_BOX (hbox), button2, TRUE, FALSE, 0); if(vcd_explicit_zero_subscripts>=0) { button3 = gtk_button_new_with_label (" Bundle Up "); gtk_container_border_width (GTK_CONTAINER (button3), 3); gtk_signal_connect_object (GTK_OBJECT (button3), "clicked", GTK_SIGNAL_FUNC(bundle_callback_up), GTK_OBJECT (window)); gtk_widget_show (button3); gtk_tooltips_set_tip_2(tooltips, button3, "Bundle selected signal hierarchy into a single bit " "vector with the topmost signal as the LSB and the " "lowest as the MSB. Entering a zero length bundle " "name will reconstruct the individual vectors " "in the hierarchy. Otherwise, all the bits in " "the hierarchy will be coalesced with the supplied " "name into a single vector.",NULL); gtk_box_pack_start (GTK_BOX (hbox), button3, TRUE, FALSE, 0); button3a = gtk_button_new_with_label (" Bundle Down "); gtk_container_border_width (GTK_CONTAINER (button3a), 3); gtk_signal_connect_object (GTK_OBJECT (button3a), "clicked", GTK_SIGNAL_FUNC(bundle_callback_down), GTK_OBJECT (window)); gtk_widget_show (button3a); gtk_tooltips_set_tip_2(tooltips, button3a, "Bundle selected signal hierarchy into a single bit " "vector with the topmost signal as the MSB and the " "lowest as the LSB. Entering a zero length bundle " "name will reconstruct the individual vectors " "in the hierarchy. Otherwise, all the bits in " "the hierarchy will be coalesced with the supplied " "name into a single vector.",NULL); gtk_box_pack_start (GTK_BOX (hbox), button3a, TRUE, FALSE, 0); } button4 = gtk_button_new_with_label (" Replace "); gtk_container_border_width (GTK_CONTAINER (button4), 3); gtk_signal_connect_object (GTK_OBJECT (button4), "clicked", GTK_SIGNAL_FUNC(replace_callback), GTK_OBJECT (window)); gtk_widget_show (button4); gtk_tooltips_set_tip_2(tooltips, button4, "Replace highlighted signals on the main window with signals selected above.",NULL); gtk_box_pack_start (GTK_BOX (hbox), button4, TRUE, FALSE, 0); button5 = gtk_button_new_with_label (" Exit "); gtk_container_border_width (GTK_CONTAINER (button5), 3); gtk_signal_connect_object (GTK_OBJECT (button5), "clicked", GTK_SIGNAL_FUNC(destroy_callback), GTK_OBJECT (window)); gtk_tooltips_set_tip_2(tooltips, button5, "Do nothing and return to the main window.",NULL); gtk_widget_show (button5); gtk_box_pack_start (GTK_BOX (hbox), button5, TRUE, FALSE, 0); gtk_container_add (GTK_CONTAINER (frameh), hbox); gtk_container_add (GTK_CONTAINER (window), table); gtk_widget_show(window); }
GtkWidget * dirtree_new (GtkWidget * win, const gchar * start_path, gboolean check_dir, gboolean check_hlinks, gboolean show_dotfile, gint line_style, gint expander_style) { GtkWidget *widget; DirTree *dt; DirTreeNode *dt_node; GtkCTreeNode *node = NULL; char *root = "/", *rp, *tmp; widget = gtk_type_new (dirtree_get_type ()); #ifndef USE_GTK2 gtk_ctree_construct (GTK_CTREE (widget), 1, 0, NULL); #endif dt = DIRTREE (widget); dt->collapse = FALSE; dt->check_dir = check_dir; dt->check_hlinks = check_hlinks; dt->show_dotfile = show_dotfile; dt->expander_style = expander_style; dt->line_style = line_style; dt->check_events = TRUE; lock = FALSE; gtk_clist_set_column_auto_resize (GTK_CLIST (dt), 0, TRUE); gtk_clist_set_selection_mode (GTK_CLIST (dt), GTK_SELECTION_BROWSE); gtk_clist_set_row_height (GTK_CLIST (dt), 18); gtk_ctree_set_expander_style (GTK_CTREE (dt), expander_style); gtk_ctree_set_line_style (GTK_CTREE (dt), line_style); folder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &folder_mask, NULL, folder_xpm); ofolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &ofolder_mask, NULL, folder_open_xpm); lfolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &lfolder_mask, NULL, folder_link_xpm); lofolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &lofolder_mask, NULL, folder_link_open_xpm); lckfolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &lckfolder_mask, NULL, folder_lock_xpm); gofolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &gofolder_mask, NULL, folder_go_xpm); upfolder_pixmap = gdk_pixmap_create_from_xpm_d (win->window, &upfolder_mask, NULL, folder_up_xpm); node = gtk_ctree_insert_node (GTK_CTREE (dt), NULL, NULL, &root, CTREE_SPACING, folder_pixmap, folder_mask, ofolder_pixmap, ofolder_mask, FALSE, TRUE); dt_node = g_malloc0 (sizeof (DirTreeNode)); dt_node->path = g_strdup ("/"); dt_node->scanned = TRUE; gtk_ctree_node_set_row_data_full (GTK_CTREE (dt), node, dt_node, dirtree_destroy_tree); tree_expand_node (dt, node, FALSE); rp = g_strdup (start_path); tmp = strtok (rp, "/"); while (tmp) { node = dirtree_find_file (dt, node, tmp); if (!node) break; gtk_ctree_expand (GTK_CTREE (dt), node); gtk_ctree_select (GTK_CTREE (dt), node); GTK_CLIST (dt)->focus_row = GTK_CLIST (dt)->rows - g_list_length ((GList *) node); tmp = strtok (NULL, "/"); } g_free (rp); return widget; }