⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stock_browser.c

📁 windows平台下开发gtk程序所需要的库和头文件等
💻 C
📖 第 1 页 / 共 2 页
字号:
      gchar *str;            gtk_tree_model_get (model, &iter,                          0, &info,                          -1);      if (info->small_icon && info->item.label)        gtk_label_set_text (GTK_LABEL (display->type_label), "Icon and Item");      else if (info->small_icon)        gtk_label_set_text (GTK_LABEL (display->type_label), "Icon Only");      else if (info->item.label)        gtk_label_set_text (GTK_LABEL (display->type_label), "Item Only");      else        gtk_label_set_text (GTK_LABEL (display->type_label), "???????");      gtk_label_set_text (GTK_LABEL (display->macro_label), info->macro);      gtk_label_set_text (GTK_LABEL (display->id_label), info->id);      if (info->item.label)        {          str = g_strdup_printf ("%s %s", info->item.label, info->accel_str);          gtk_label_set_text_with_mnemonic (GTK_LABEL (display->label_accel_label), str);          g_free (str);        }      else        {          gtk_label_set_text (GTK_LABEL (display->label_accel_label), "");        }      if (info->small_icon)        gtk_image_set_from_stock (GTK_IMAGE (display->icon_image), info->id,                                  get_largest_size (info->id));      else        gtk_image_set_from_pixbuf (GTK_IMAGE (display->icon_image), NULL);      stock_item_info_free (info);    }  else    {      gtk_label_set_text (GTK_LABEL (display->type_label), "No selected item");      gtk_label_set_text (GTK_LABEL (display->macro_label), "");      gtk_label_set_text (GTK_LABEL (display->id_label), "");      gtk_label_set_text (GTK_LABEL (display->label_accel_label), "");      gtk_image_set_from_pixbuf (GTK_IMAGE (display->icon_image), NULL);    }}static voidmacro_set_func_text (GtkTreeViewColumn *tree_column,		     GtkCellRenderer   *cell,		     GtkTreeModel      *model,		     GtkTreeIter       *iter,		     gpointer           data){  StockItemInfo *info;    gtk_tree_model_get (model, iter,                      0, &info,                      -1);    g_object_set (GTK_CELL_RENDERER (cell),                "text", info->macro,                NULL);    stock_item_info_free (info);}static voidid_set_func (GtkTreeViewColumn *tree_column,             GtkCellRenderer   *cell,             GtkTreeModel      *model,             GtkTreeIter       *iter,             gpointer           data){  StockItemInfo *info;    gtk_tree_model_get (model, iter,                      0, &info,                      -1);    g_object_set (GTK_CELL_RENDERER (cell),                "text", info->id,                NULL);    stock_item_info_free (info);}static voidaccel_set_func (GtkTreeViewColumn *tree_column,                GtkCellRenderer   *cell,                GtkTreeModel      *model,                GtkTreeIter       *iter,                gpointer           data){  StockItemInfo *info;    gtk_tree_model_get (model, iter,                      0, &info,                      -1);    g_object_set (GTK_CELL_RENDERER (cell),                "text", info->accel_str,                NULL);    stock_item_info_free (info);}static voidlabel_set_func (GtkTreeViewColumn *tree_column,                GtkCellRenderer   *cell,                GtkTreeModel      *model,                GtkTreeIter       *iter,                gpointer           data){  StockItemInfo *info;    gtk_tree_model_get (model, iter,                      0, &info,                      -1);    g_object_set (GTK_CELL_RENDERER (cell),                "text", info->item.label,                NULL);    stock_item_info_free (info);}GtkWidget *do_stock_browser (GtkWidget *do_widget){    if (!window)    {      GtkWidget *frame;      GtkWidget *vbox;      GtkWidget *hbox;      GtkWidget *sw;      GtkWidget *treeview;      GtkWidget *align;      GtkTreeModel *model;      GtkCellRenderer *cell_renderer;      StockItemDisplay *display;      GtkTreeSelection *selection;      GtkTreeViewColumn *column;      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);      gtk_window_set_screen (GTK_WINDOW (window),			     gtk_widget_get_screen (do_widget));      gtk_window_set_title (GTK_WINDOW (window), "Stock Icons and Items");      gtk_window_set_default_size (GTK_WINDOW (window), -1, 500);      g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);      gtk_container_set_border_width (GTK_CONTAINER (window), 8);      hbox = gtk_hbox_new (FALSE, 8);      gtk_container_add (GTK_CONTAINER (window), hbox);      sw = gtk_scrolled_window_new (NULL, NULL);      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),                                      GTK_POLICY_NEVER,                                      GTK_POLICY_AUTOMATIC);      gtk_box_pack_start (GTK_BOX (hbox), sw, FALSE, FALSE, 0);      model = create_model ();            treeview = gtk_tree_view_new_with_model (model);      g_object_unref (model);      gtk_container_add (GTK_CONTAINER (sw), treeview);            column = gtk_tree_view_column_new ();      gtk_tree_view_column_set_title (column, "Macro");      cell_renderer = gtk_cell_renderer_pixbuf_new ();      gtk_tree_view_column_pack_start (column,				       cell_renderer,				       FALSE);      gtk_tree_view_column_set_attributes (column, cell_renderer,					   "stock_id", 1, NULL);      cell_renderer = gtk_cell_renderer_text_new ();      gtk_tree_view_column_pack_start (column,				       cell_renderer,				       TRUE);      gtk_tree_view_column_set_cell_data_func (column, cell_renderer,					       macro_set_func_text, NULL, NULL);      gtk_tree_view_append_column (GTK_TREE_VIEW (treeview),				   column);      cell_renderer = gtk_cell_renderer_text_new ();      gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),                                                  -1,                                                  "Label",                                                  cell_renderer,                                                  label_set_func,                                                  NULL,                                                  NULL);      cell_renderer = gtk_cell_renderer_text_new ();      gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),                                                  -1,                                                  "Accel",                                                  cell_renderer,                                                  accel_set_func,                                                  NULL,                                                  NULL);      cell_renderer = gtk_cell_renderer_text_new ();      gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),                                                  -1,                                                  "ID",                                                  cell_renderer,                                                  id_set_func,                                                  NULL,                                                  NULL);            align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);      gtk_box_pack_end (GTK_BOX (hbox), align, FALSE, FALSE, 0);            frame = gtk_frame_new ("Selected Item");      gtk_container_add (GTK_CONTAINER (align), frame);      vbox = gtk_vbox_new (FALSE, 8);      gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);      gtk_container_add (GTK_CONTAINER (frame), vbox);      display = g_new (StockItemDisplay, 1);      g_object_set_data_full (G_OBJECT (treeview),                              "stock-display",                              display,                              g_free); /* free display with treeview */            display->type_label = gtk_label_new (NULL);      display->macro_label = gtk_label_new (NULL);      display->id_label = gtk_label_new (NULL);      display->label_accel_label = gtk_label_new (NULL);      display->icon_image = gtk_image_new_from_pixbuf (NULL); /* empty image */      gtk_box_pack_start (GTK_BOX (vbox), display->type_label,                          FALSE, FALSE, 0);      gtk_box_pack_start (GTK_BOX (vbox), display->icon_image,                          FALSE, FALSE, 0);            gtk_box_pack_start (GTK_BOX (vbox), display->label_accel_label,                          FALSE, FALSE, 0);      gtk_box_pack_start (GTK_BOX (vbox), display->macro_label,                          FALSE, FALSE, 0);      gtk_box_pack_start (GTK_BOX (vbox), display->id_label,                          FALSE, FALSE, 0);      selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));      gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);            g_signal_connect (selection,			"changed",			G_CALLBACK (selection_changed),			NULL);    }  if (!GTK_WIDGET_VISIBLE (window))    {      gtk_widget_show_all (window);    }  else    {	       gtk_widget_destroy (window);      window = NULL;    }  return window;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -