static void double_pref_create_widget (GOConfNode *node, GtkWidget *grid, gint row, gnm_float val, gnm_float from, gnm_float to, gnm_float step, gint digits, double_conf_setter_t setter, double_conf_getter_t getter, char const *default_label) { GtkWidget *w = gtk_spin_button_new (GTK_ADJUSTMENT ( gtk_adjustment_new (val, from, to, step, step, 0)), 1, digits); gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), getter ()); g_object_set_data (G_OBJECT (w), "node", node); gtk_widget_set_hexpand (w, TRUE); gtk_grid_attach (GTK_GRID (grid), w, 1, row, 1, 1); g_object_set_data (G_OBJECT (w), "getter", getter); g_signal_connect (G_OBJECT (w), "value-changed", G_CALLBACK (double_pref_widget_to_conf), (gpointer) setter); connect_notification (node, (GOConfMonitorFunc)double_pref_conf_to_widget, w, grid); pref_create_label (node, grid, row, default_label, w); set_tip (node, w); }
void qm_trayIcon::set_mode(int mode) { switch (mode) { case ID_play: // playing { a_playpause->setIcon(pxb_pause); a_playpause->setText(tr("Pause")); setIcon(pxb_st_playing); break; } case ID_paus: // paused { a_playpause->setIcon(pxb_play); a_playpause->setText(tr("Play")); setIcon(pxb_st_paused); break; } case ID_stop: // stopped { a_playpause->setIcon(pxb_play); a_playpause->setText(tr("Play")); setIcon(pxb_st_stopped); break; } case ID_nocn: // noconnection { a_playpause->setIcon(pxb_play); a_playpause->setText(tr("Play")); setIcon(pxb_st_noconn); set_tip(" " + tr("Not Connected") + " "); break; } default: { a_playpause->setIcon(pxb_play); a_playpause->setText(tr("Play")); setIcon(pxb_st_idle); set_tip(" " + tr("Idle") + " "); break; } } }
static void enum_pref_create_widget (GOConfNode *node, GtkWidget *grid, gint row, GType enum_type, enum_conf_setter_t setter, enum_conf_getter_t getter, gchar const *default_label, char const *(*label_getter)(int)) { unsigned int i; GtkTreeIter iter; GtkCellRenderer *renderer; GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (enum_type)); GtkWidget *combo = gtk_combo_box_new (); GtkListStore *model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); gint current = getter (); gint current_index = -1; for (i = 0; i < enum_class->n_values ; i++) { gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, 0, label_getter ((int) enum_class->values[i].value), 1, enum_class->values + i, -1); if (enum_class->values[i].value == current) current_index = i; } g_type_class_unref (enum_class); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (model)); g_object_unref (model); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), current_index); gtk_grid_attach (GTK_GRID (grid), combo, 1, row, 1, 1); g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (cb_enum_changed), (gpointer) setter); connect_notification (node, (GOConfMonitorFunc)enum_pref_conf_to_widget, combo, grid); pref_create_label (node, grid, row, default_label, combo); set_tip (node, combo); }
static void bool_pref_create_widget (GOConfNode *node, GtkWidget *grid, gint row, gboolean_conf_setter_t setter, gboolean_conf_getter_t getter, char const *default_label) { const char *desc = gnm_conf_get_short_desc (node); GtkWidget *item = gtk_check_button_new_with_label ( (desc != NULL) ? desc : default_label); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (item), getter ()); g_object_set_data (G_OBJECT (item), "getter", getter); g_signal_connect (G_OBJECT (item), "toggled", G_CALLBACK (bool_pref_widget_to_conf), (gpointer) setter); gtk_grid_attach (GTK_GRID (grid), item, 0, row, 2, 1); connect_notification (node, (GOConfMonitorFunc)bool_pref_conf_to_widget, item, grid); set_tip (node, item); }
GtkWidget *createbbox(GtkWidget *bbox) { GtkWidget *ice, *clame, *addch, *help, *vumeters; ice = clame = addch = help = vumeters = NULL; bbox=gtk_hbutton_box_new(); gtk_button_box_set_child_size(GTK_BUTTON_BOX(bbox), 7, 10); gtk_hbutton_box_set_spacing_default(0); gtk_hbutton_box_set_layout_default(GTK_BUTTONBOX_START); ice = createpixmap(window, ice, stream_xpm, _("Let's stream!"), FALSE); g_signal_connect(G_OBJECT(ice), "clicked", G_CALLBACK(ice_window), NULL); gtk_container_add(GTK_CONTAINER(bbox), ice); addch = createpixmap(window, addch, newch_xpm, _("Add Channel"), FALSE); g_signal_connect_swapped(G_OBJECT(addch), "clicked", G_CALLBACK(createch), NULL); gtk_container_add(GTK_CONTAINER(bbox), addch); /* il talk sarebbe da mettere solo come hotkey mic = createpixmap(window, mic, stock_mic_xpm, _("Talk"), TRUE); g_signal_connect(G_OBJECT(mic), "clicked", G_CALLBACK(gcb_set_talk), NULL); gtk_container_add(GTK_CONTAINER(bbox), mic); */ linein = createpixmap(window, linein, mic_xpm, _("Line In"), TRUE); g_signal_connect(G_OBJECT(linein), "clicked", G_CALLBACK(gcb_set_linein), NULL); gtk_container_add(GTK_CONTAINER(bbox), linein); speakout = createpixmap(window, speakout, speaker_xpm, _("Speaker"), TRUE); g_signal_connect(G_OBJECT(speakout), "clicked", G_CALLBACK(gcb_set_speakout), NULL); gtk_container_add(GTK_CONTAINER(bbox), speakout); vumeters = createpixmap(window, vumeters, vu_xpm, _("Vumeters"), FALSE); g_signal_connect(G_OBJECT(vumeters), "clicked", G_CALLBACK(vumeters_new), NULL); gtk_container_add(GTK_CONTAINER(bbox), vumeters); #ifdef MUSE_EXPERIMENTAL tmpwid = gtk_image_new_from_stock(GTK_STOCK_INDEX, GTK_ICON_SIZE_BUTTON); scheduler = gtk_button_new(); gtk_container_add(GTK_CONTAINER(scheduler), tmpwid); set_tip(scheduler, "Radio Scheduler"); g_signal_connect(G_OBJECT(scheduler), "clicked", G_CALLBACK(rsched_new), NULL); gtk_container_add(GTK_CONTAINER(bbox), scheduler); #endif help = createpixmap(window, help, about_xpm, _("Hall of Fame"), FALSE); g_signal_connect(G_OBJECT(help), "clicked", G_CALLBACK(about_win), NULL); gtk_container_add(GTK_CONTAINER(bbox), help); return bbox; }
void um_photo_dialog_set_user (UmPhotoDialog *um, UmUser *user) { UmUserManager *manager; GSList *list, *l; UmUser *u; GIcon *icon; GEmblem *emblem; GList *children, *c; g_return_if_fail (um != NULL); if (um->user) { g_object_unref (um->user); um->user = NULL; } um->user = user; if (um->user) { g_object_ref (um->user); children = gtk_container_get_children (GTK_CONTAINER (um->photo_popup)); g_list_foreach (children, (GFunc) clear_tip, NULL); manager = um_user_manager_ref_default (); list = um_user_manager_list_users (manager); g_object_unref (manager); icon = g_themed_icon_new ("avatar-default"); emblem = g_emblem_new (icon); g_object_unref (icon); for (l = list; l; l = l->next) { const char *filename; u = l->data; if (u == user) continue; filename = um_user_get_icon_file (u); if (filename == NULL) continue; for (c = children; c; c = c->next) { const char *f; f = g_object_get_data (G_OBJECT (c->data), "filename"); if (f == NULL) continue; if (strcmp (f, filename) == 0) { char *tip; tip = g_strdup_printf (_("Used by %s"), um_user_get_real_name (u)); set_tip (GTK_WIDGET (c->data), tip, emblem); g_free (tip); break; } } } g_slist_free (list); g_object_unref (emblem); } }
bool createch(void) { struct gchan *object; GtkWidget *fixed; GtkWidget *frami1; GtkWidget *vbox, *htast, *hbot; GtkObject *adj, *adj1; GtkWidget *playmenu, *playmenuopt; GtkWidget *tmpwid, *tmpwid1, *dock; GtkWidget *progress; GtkWidget *volume; GtkWidget *scrollwin; GtkWidget *table, *rmit/*, *file, *http*/; GtkWidget *piddi; GtkTreeSelection *select; GtkListStore *store; GtkWidget *tree; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTargetEntry target_entry[3]; gchar numchan[16]; unsigned int pos=0; unsigned int idx=1; dock=rmit=NULL; while(( object = (struct gchan *) list_get_data(listachan, idx, 0) )) idx++; if(idx > MAX_CHANNELS) return FALSE; func(_("GTK_GUI::createch(%u)"), idx); object = (struct gchan *) g_malloc (sizeof(struct gchan)); object->idx = idx; object->channel = 0; /* nothing */ func(_("GTK_GUI::createch : chan[%u] is at %p"), idx, object); mixer->create_channel(idx-1); snprintf(numchan, 16, _("Channel[%u]"), object->idx); frami1 = gtk_frame_new(numchan); object->frami = frami1; gtk_frame_set_shadow_type(GTK_FRAME(frami1), GTK_SHADOW_ETCHED_OUT); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frami1), vbox); /* at the moment pos is 0 function */ list_add(&listachan, (void *) object, pos, idx, object->frami); htast = gtk_hbox_new(TRUE, 0); /* same dimension */ fixed = gtk_fixed_new(); gtk_fixed_put(GTK_FIXED(fixed), htast, 0, 0); gtk_box_pack_start(GTK_BOX(vbox), fixed, FALSE, FALSE, 0); /* addiamo il coso del tempo */ tmpwid = gtk_entry_new_with_max_length(9); object->ptime = tmpwid; gtk_widget_set_size_request(tmpwid, 55, 22); gtk_entry_set_text(GTK_ENTRY(tmpwid), "00:00:00"); gtk_entry_set_editable(GTK_ENTRY(tmpwid), FALSE); gtk_box_pack_start(GTK_BOX(htast), tmpwid, FALSE, FALSE, 0); /* enjoy ourselves with buttons */ tmpwid = createpixmap(window, tmpwid, play_xpm, _("Play Channel"), TRUE); object->play = tmpwid; g_signal_connect(G_OBJECT(tmpwid), "pressed", G_CALLBACK(gcb_play_channel), object); gtk_box_pack_start(GTK_BOX(htast), tmpwid, FALSE, TRUE, 0); tmpwid = createpixmap(window, tmpwid, stop_xpm, _("Stop Channel"), FALSE); g_signal_connect(G_OBJECT(tmpwid), "pressed", G_CALLBACK(gcb_stop_channel), object); gtk_box_pack_start(GTK_BOX(htast), tmpwid, FALSE, TRUE, 0); tmpwid = createpixmap(window, tmpwid, pause_xpm, _("Pause Channel"), TRUE); object->pause = tmpwid; g_signal_connect(G_OBJECT(tmpwid), "clicked", G_CALLBACK(gcb_pause_channel), object); gtk_box_pack_start(GTK_BOX(htast), tmpwid, FALSE, TRUE, 0); tmpwid = createpixmap(window, tmpwid, rewind_xpm, _("Rewind Channel"), FALSE); g_signal_connect(G_OBJECT(tmpwid), "clicked", G_CALLBACK(gcb_begin_channel), object); gtk_box_pack_start(GTK_BOX(htast), tmpwid, FALSE, TRUE, 0); tmpwid = createpixmap(window, tmpwid, forward_xpm, _("Forward Channel"), FALSE); g_signal_connect(G_OBJECT(tmpwid), "clicked", G_CALLBACK(gcb_end_channel), object); gtk_box_pack_start(GTK_BOX(htast), tmpwid, FALSE, TRUE, 0); /* second part */ adj = gtk_adjustment_new(0.0, 0.0, 1.0, 0.1, 0.1, 0.0); object->adjprog = adj; progress = gtk_hscale_new(GTK_ADJUSTMENT(adj)); gtk_range_set_update_policy(GTK_RANGE(progress),GTK_UPDATE_DELAYED); gtk_scale_set_digits(GTK_SCALE(progress), 6); object->progress = progress; gtk_scale_set_draw_value(GTK_SCALE(progress), FALSE); /* g_signal_connect(G_OBJECT(progress), "button_press_event", G_CALLBACK(gcb_event_pause_channel), object); g_signal_connect(G_OBJECT(progress), "button_release_event", G_CALLBACK(gcb_event_set_position), object); */ /* here there is a problem: the position sticks to the mouse maybe there is a way to say to unfocus the widget after moving it? */ g_signal_connect(G_OBJECT(progress), "button_release_event", G_CALLBACK(gcb_event_set_position), object); gtk_box_pack_start(GTK_BOX(vbox), progress, FALSE, FALSE, 0); hbot = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(vbox), hbot); /* volume adjustment */ adj1 = gtk_adjustment_new(0.0, 0.0, 1.0, 0.01, 0.01, 0.0); object->adjvol = adj1; object->volid = g_signal_connect(G_OBJECT(adj1), "value_changed", G_CALLBACK(gcb_set_volume), object); #ifdef WITH_SPEED /* speed adjustment */ object->adjspeed = gtk_adjustment_new(1.0, 0.0, 1.0, 0.1, 0.1, 0.0); g_signal_connect(G_OBJECT(object->adjspeed), "value_changed", G_CALLBACK(gcb_set_speed), object); #endif volume = gtk_vscale_new(GTK_ADJUSTMENT(adj1)); gtk_scale_set_draw_value(GTK_SCALE(volume), FALSE); tmpwid = gtk_table_new(2, 1, FALSE); gtk_box_pack_start(GTK_BOX(hbot), tmpwid, FALSE, FALSE, 0); tmpwid1 = gtk_vbox_new(FALSE, 0); object->vol_lab = gtk_label_new(_("VOL")); gtk_box_pack_start(GTK_BOX(tmpwid1), object->vol_lab, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(tmpwid1), volume, TRUE, TRUE, 0); object->vol_lab=gtk_label_new(_("100")); gtk_box_pack_start(GTK_BOX(tmpwid1), object->vol_lab, FALSE, FALSE, 0); gtk_table_attach_defaults(GTK_TABLE(tmpwid), tmpwid1, 0, 1, 1, 2); #ifdef WITH_SPEED /* speed widget */ // tmpwid1=gtk_vbox_new(FALSE, 0); object->speed=gtk_tx_dial_new(GTK_ADJUSTMENT(object->adjspeed)); set_tip(object->speed, _("Speed")); gtk_box_pack_start(GTK_BOX(tmpwid1), object->speed, FALSE, FALSE, 0); object->speed_lab=gtk_label_new(_("100")); gtk_box_pack_start(GTK_BOX(tmpwid1), object->speed_lab, FALSE, FALSE, 0); gtk_table_attach_defaults(GTK_TABLE(tmpwid), tmpwid1, 0, 1, 0, 1); #endif scrollwin = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_size_request(scrollwin, 90, 140); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); store = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING); tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); g_object_unref(store); object->tree = tree; //gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE); /* DND stuff */ target_entry[0].target = (gchar *)DRAG_TAR_NAME_0; target_entry[0].flags = 0; target_entry[0].info = DRAG_TAR_INFO_0; target_entry[1].target = (gchar *)DRAG_TAR_NAME_1; target_entry[1].flags = 0; target_entry[1].info = DRAG_TAR_INFO_1; target_entry[2].target = (gchar *)DRAG_TAR_NAME_2; target_entry[2].flags = 0; target_entry[2].info = DRAG_TAR_INFO_2; gtk_drag_dest_set( tree, (GtkDestDefaults)(GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP), target_entry,sizeof(target_entry) / sizeof(GtkTargetEntry), GDK_ACTION_MOVE); g_signal_connect(G_OBJECT(tree), "drag_motion", G_CALLBACK(DND_data_motion), object); gtk_drag_source_set( tree, (GdkModifierType) (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK), target_entry, sizeof(target_entry) / sizeof(GtkTargetEntry), GDK_ACTION_MOVE); g_signal_connect(G_OBJECT(tree), "drag_begin", G_CALLBACK(DND_begin), object); g_signal_connect(G_OBJECT(tree), "drag_end", G_CALLBACK(DND_end), object); g_signal_connect(G_OBJECT(tree), "drag_data_get", G_CALLBACK(DND_data_get), object); g_signal_connect(G_OBJECT(tree), "drag_data_received", G_CALLBACK(DND_data_received), object); g_signal_connect(G_OBJECT(tree), "drag_data_delete", G_CALLBACK(DND_data_delete), object); /* end*/ select = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree)); gtk_tree_selection_set_mode (select, GTK_SELECTION_MULTIPLE); /*g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK(gcb_set_channel), object); */ g_signal_connect(G_OBJECT(tree), "button_press_event", G_CALLBACK(gcb_event_view_popup), object); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("Nick", renderer, "text", TITLE, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); gtk_container_add(GTK_CONTAINER(scrollwin), tree); gtk_box_pack_start(GTK_BOX(hbot), scrollwin, TRUE, TRUE, 0); /* playmode menu */ playmenu = gtk_menu_new(); tmpwid = gtk_menu_item_new_with_label(_("single play")); gtk_menu_append(GTK_MENU(playmenu), tmpwid); tmpwid=gtk_menu_item_new_with_label(_("loop")); gtk_menu_append(GTK_MENU(playmenu), tmpwid); tmpwid=gtk_menu_item_new_with_label(_("continuous")); gtk_menu_append(GTK_MENU(playmenu), tmpwid); playmenuopt = gtk_option_menu_new(); gtk_option_menu_set_menu(GTK_OPTION_MENU(playmenuopt), playmenu); g_signal_connect(G_OBJECT(playmenuopt), "changed", G_CALLBACK(gcb_set_playmode), object); rmit = gtk_button_new(); tmpwid = gtk_image_new_from_stock(GTK_STOCK_CANCEL, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_container_add(GTK_CONTAINER(rmit), tmpwid); object->rmit = rmit; g_signal_connect(G_OBJECT(object->rmit),"clicked", G_CALLBACK(gcb_deletech), object); dock = createpixmap(window, dock, dock_xpm, _("Undock Channel"), FALSE); object->dock = dock; g_signal_connect(G_OBJECT(object->dock), "clicked", G_CALLBACK(dockchan), object); piddi = gtk_hbox_new(FALSE, 0); object->hbox = piddi; gtk_box_pack_start(GTK_BOX(piddi), rmit, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(piddi), dock, FALSE, FALSE, 0); table = gtk_table_new(1, 4, TRUE); object->table = table; gtk_table_attach_defaults(GTK_TABLE(table), piddi, 0, 1, 0, 1); gtk_table_attach_defaults(GTK_TABLE(table), playmenuopt, 3, 5, 0, 1); gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); object->playmode = 0; /* pack_chan_insert and pos update */ pos = pack_chan_insert(object->frami); return TRUE; }
static GtkWidget * wordlist_pref_create_widget (GOConfNode *node, GtkWidget *grid, gint row, wordlist_conf_setter_t setter, wordlist_conf_getter_t getter, char const *default_label) { GtkWidget *w = gtk_grid_new (); GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL); GtkWidget *tv = gtk_tree_view_new (); GtkWidget *entry = gtk_entry_new (); GtkWidget *add_button = gtk_button_new_from_stock (GTK_STOCK_ADD); GtkWidget *remove_button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); GtkListStore *model = gtk_list_store_new (1, G_TYPE_STRING); GtkTreeSelection *selection; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tv), FALSE); gtk_container_add (GTK_CONTAINER (sw), tv); g_object_set (w, "column-spacing", 12, "row-spacing", 6, "hexpand", TRUE, "vexpand", TRUE, NULL); gtk_grid_attach (GTK_GRID (grid), w, 0, row, 2, 1); g_object_set (sw, "hexpand", TRUE, "vexpand", TRUE, NULL); gtk_grid_attach (GTK_GRID (w), sw, 0, 1, 1, 3); gtk_widget_set_hexpand (entry, TRUE); gtk_grid_attach (GTK_GRID (w), entry, 0, 4, 1, 1); gtk_widget_set_valign (remove_button, GTK_ALIGN_END); gtk_grid_attach (GTK_GRID (w), remove_button, 1, 3, 1, 1); gtk_grid_attach (GTK_GRID (w), add_button, 1, 4, 1, 1); gtk_tree_view_set_model (GTK_TREE_VIEW (tv), GTK_TREE_MODEL (model)); g_object_unref (model); gtk_tree_view_append_column (GTK_TREE_VIEW (tv), gtk_tree_view_column_new_with_attributes (NULL, gtk_cell_renderer_text_new (), "text", 0, NULL)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tv)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); wordlist_pref_conf_to_widget (node, "", model); g_object_set_data (G_OBJECT (remove_button), "treeview", tv); g_object_set_data (G_OBJECT (add_button), "entry", entry); g_object_set_data (G_OBJECT (remove_button), "getter", getter); g_object_set_data (G_OBJECT (add_button), "getter", getter); g_signal_connect (G_OBJECT (remove_button), "clicked", G_CALLBACK (wordlist_pref_remove), setter); g_signal_connect (G_OBJECT (add_button), "clicked", G_CALLBACK (wordlist_pref_add), setter); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (wordlist_pref_update_remove_button), remove_button); wordlist_pref_update_remove_button (selection, GTK_BUTTON (remove_button)); connect_notification (node, (GOConfMonitorFunc)wordlist_pref_conf_to_widget, model, grid); pref_create_label (node, w, 0, default_label, tv); set_tip (node, tv); return w; }