コード例 #1
0
void nsgtk_history_init_filters(void)
{	
	GtkWidget *search_entry, *clear_button;
	GString *filter_string = g_string_new(NULL);
							
	search_entry = glade_xml_get_widget(gladeFile,"entrySearch");
	clear_button = glade_xml_get_widget(gladeFile,"buttonClearSearch");
	
	g_signal_connect(G_OBJECT(search_entry), "changed", 
			G_CALLBACK(nsgtk_history_search), NULL);
	g_signal_connect_swapped(G_OBJECT(clear_button), "clicked",
			G_CALLBACK(nsgtk_history_search_clear),
			GTK_ENTRY(search_entry));
	
	gtk_tree_model_filter_set_visible_func(
			GTK_TREE_MODEL_FILTER(history->history_filter), 
			(GtkTreeModelFilterVisibleFunc)
			nsgtk_history_filter_search, search_entry, NULL);
	gtk_tree_model_filter_set_visible_func(
			GTK_TREE_MODEL_FILTER(history->site_filter), 
			(GtkTreeModelFilterVisibleFunc)
			nsgtk_history_filter_sites, filter_string, NULL);
	gtk_tree_model_filter_set_visible_column(
			GTK_TREE_MODEL_FILTER(history->domain_filter), 
			DOM_HAS_SITES);	

	g_signal_connect(G_OBJECT(history->site_selection), "changed",
		G_CALLBACK(nsgtk_history_update_info), FALSE);
	g_signal_connect(G_OBJECT(history->domain_selection), "changed",
		G_CALLBACK(nsgtk_history_show_domain), filter_string);
}
コード例 #2
0
ファイル: cookie-manager-page.c プロジェクト: sinoory/webv8
static void cookie_manager_page_set_property(GObject *object, guint prop_id, const GValue *value,
        GParamSpec *pspec)
{
    CookieManagerPage *cmp = COOKIE_MANAGER_PAGE(object);
    CookieManagerPagePrivate *priv = cmp->priv;
    switch (prop_id)
    {
    case PROP_STORE:
    {
        priv->store = g_value_get_object(value);

        /* setting filter and model */
        priv->filter = gtk_tree_model_filter_new(GTK_TREE_MODEL(priv->store), NULL);
        gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(priv->filter),
                COOKIE_MANAGER_COL_VISIBLE);
        gtk_tree_view_set_model(GTK_TREE_VIEW(priv->treeview), GTK_TREE_MODEL(priv->filter));
        g_object_unref(priv->filter);
        break;
    }
    case PROP_PARENT:
    {
        if (priv->parent != NULL)
        {
            g_signal_handlers_disconnect_by_func(priv->parent,
                                                 cookie_manager_page_pre_cookies_change_cb, object);
            g_signal_handlers_disconnect_by_func(priv->parent,
                                                 cookie_manager_page_cookies_changed_cb, object);
            g_signal_handlers_disconnect_by_func(priv->parent,
                                                 cookie_manager_page_filter_changed_cb, object);
        }
        priv->parent = g_value_get_object(value);

        g_signal_connect(priv->parent, "pre-cookies-change",
                         G_CALLBACK(cookie_manager_page_pre_cookies_change_cb), object);
        g_signal_connect(priv->parent, "cookies-changed",
                         G_CALLBACK(cookie_manager_page_cookies_changed_cb), object);
        g_signal_connect(priv->parent, "filter-changed",
                         G_CALLBACK(cookie_manager_page_filter_changed_cb), object);
        break;
    }
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
        break;
    }
}
コード例 #3
0
ファイル: gimpactionview.c プロジェクト: Gnilichko/gimp
GtkWidget *
gimp_action_view_new (GimpUIManager *manager,
                      const gchar   *select_action,
                      gboolean       show_shortcuts)
{
  GtkTreeView       *view;
  GtkTreeViewColumn *column;
  GtkCellRenderer   *cell;
  GtkTreeStore      *store;
  GtkTreeModel      *filter;
  GtkAccelGroup     *accel_group;
  GList             *list;
  GtkTreePath       *select_path = NULL;

  g_return_val_if_fail (GIMP_IS_UI_MANAGER (manager), NULL);

  store = gtk_tree_store_new (GIMP_ACTION_VIEW_N_COLUMNS,
                              G_TYPE_BOOLEAN,         /* COLUMN_VISIBLE        */
                              GTK_TYPE_ACTION,        /* COLUMN_ACTION         */
                              G_TYPE_STRING,          /* COLUMN_STOCK_ID       */
                              G_TYPE_STRING,          /* COLUMN_LABEL          */
                              G_TYPE_STRING,          /* COLUMN_LABEL_CASEFOLD */
                              G_TYPE_STRING,          /* COLUMN_NAME           */
                              G_TYPE_UINT,            /* COLUMN_ACCEL_KEY      */
                              GDK_TYPE_MODIFIER_TYPE, /* COLUMN_ACCEL_MASK     */
                              G_TYPE_CLOSURE);        /* COLUMN_ACCEL_CLOSURE  */

  accel_group = gtk_ui_manager_get_accel_group (GTK_UI_MANAGER (manager));

  for (list = gtk_ui_manager_get_action_groups (GTK_UI_MANAGER (manager));
       list;
       list = g_list_next (list))
    {
      GimpActionGroup *group = list->data;
      GList           *actions;
      GList           *list2;
      GtkTreeIter      group_iter;

      gtk_tree_store_append (store, &group_iter, NULL);

      gtk_tree_store_set (store, &group_iter,
                          GIMP_ACTION_VIEW_COLUMN_STOCK_ID, group->stock_id,
                          GIMP_ACTION_VIEW_COLUMN_LABEL,    group->label,
                          -1);

      actions = gtk_action_group_list_actions (GTK_ACTION_GROUP (group));

      actions = g_list_sort (actions, (GCompareFunc) gimp_action_name_compare);

      for (list2 = actions; list2; list2 = g_list_next (list2))
        {
          GtkAction       *action        = list2->data;
          const gchar     *name          = gtk_action_get_name (action);
          const gchar     *stock_id      = gtk_action_get_stock_id (action);
          gchar           *label;
          gchar           *label_casefold;
          guint            accel_key     = 0;
          GdkModifierType  accel_mask    = 0;
          GClosure        *accel_closure = NULL;
          GtkTreeIter      action_iter;

          if (strstr (name, "-menu")  ||
              strstr (name, "-popup") ||
              name[0] == '<')
            continue;

          label = gimp_strip_uline (gtk_action_get_label (action));

          if (! (label && strlen (label)))
            {
              g_free (label);
              label = g_strdup (name);
            }

          label_casefold = g_utf8_casefold (label, -1);

          if (show_shortcuts)
            {
              accel_closure = gtk_action_get_accel_closure (action);

              if (accel_closure)
                {
                  GtkAccelKey *key;

                  key = gtk_accel_group_find (accel_group,
                                              gimp_action_view_accel_find_func,
                                              accel_closure);

                  if (key            &&
                      key->accel_key &&
                      key->accel_flags & GTK_ACCEL_VISIBLE)
                    {
                      accel_key  = key->accel_key;
                      accel_mask = key->accel_mods;
                    }
                }
            }

          gtk_tree_store_append (store, &action_iter, &group_iter);

          gtk_tree_store_set (store, &action_iter,
                              GIMP_ACTION_VIEW_COLUMN_VISIBLE,        TRUE,
                              GIMP_ACTION_VIEW_COLUMN_ACTION,         action,
                              GIMP_ACTION_VIEW_COLUMN_STOCK_ID,       stock_id,
                              GIMP_ACTION_VIEW_COLUMN_LABEL,          label,
                              GIMP_ACTION_VIEW_COLUMN_LABEL_CASEFOLD, label_casefold,
                              GIMP_ACTION_VIEW_COLUMN_NAME,           name,
                              GIMP_ACTION_VIEW_COLUMN_ACCEL_KEY,      accel_key,
                              GIMP_ACTION_VIEW_COLUMN_ACCEL_MASK,     accel_mask,
                              GIMP_ACTION_VIEW_COLUMN_ACCEL_CLOSURE,  accel_closure,
                              -1);

          g_free (label);
          g_free (label_casefold);

          if (select_action && ! strcmp (select_action, name))
            {
              select_path = gtk_tree_model_get_path (GTK_TREE_MODEL (store),
                                                     &action_iter);
            }
        }

      g_list_free (actions);
    }

  filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);

  g_object_unref (store);

  view = g_object_new (GIMP_TYPE_ACTION_VIEW,
                       "model",      filter,
                       "rules-hint", TRUE,
                       NULL);

  g_object_unref (filter);

  gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (filter),
                                            GIMP_ACTION_VIEW_COLUMN_VISIBLE);

  GIMP_ACTION_VIEW (view)->manager        = g_object_ref (manager);
  GIMP_ACTION_VIEW (view)->show_shortcuts = show_shortcuts;

  gtk_tree_view_set_search_column (GTK_TREE_VIEW (view),
                                   GIMP_ACTION_VIEW_COLUMN_LABEL);

  column = gtk_tree_view_column_new ();
  gtk_tree_view_column_set_title (column, _("Action"));

  cell = gtk_cell_renderer_pixbuf_new ();
  gtk_tree_view_column_pack_start (column, cell, FALSE);
  gtk_tree_view_column_set_attributes (column, cell,
                                       "stock-id",
                                       GIMP_ACTION_VIEW_COLUMN_STOCK_ID,
                                       NULL);

  cell = gtk_cell_renderer_text_new ();
  gtk_tree_view_column_pack_start (column, cell, TRUE);
  gtk_tree_view_column_set_attributes (column, cell,
                                       "text",
                                       GIMP_ACTION_VIEW_COLUMN_LABEL,
                                       NULL);

  gtk_tree_view_append_column (view, column);

  if (show_shortcuts)
    {
      g_signal_connect (view, "button-press-event",
                        G_CALLBACK (gimp_action_view_button_press),
                        NULL);

      g_signal_connect (accel_group, "accel-changed",
                        G_CALLBACK (gimp_action_view_accel_changed),
                        view);

      column = gtk_tree_view_column_new ();
      gtk_tree_view_column_set_title (column, _("Shortcut"));

      cell = gtk_cell_renderer_accel_new ();
      g_object_set (cell,
                    "mode",     GTK_CELL_RENDERER_MODE_EDITABLE,
                    "editable", TRUE,
                    NULL);
      gtk_tree_view_column_pack_start (column, cell, TRUE);
      gtk_tree_view_column_set_attributes (column, cell,
                                           "accel-key",
                                           GIMP_ACTION_VIEW_COLUMN_ACCEL_KEY,
                                           "accel-mods",
                                           GIMP_ACTION_VIEW_COLUMN_ACCEL_MASK,
                                           NULL);

      g_signal_connect (cell, "accel-edited",
                        G_CALLBACK (gimp_action_view_accel_edited),
                        view);
      g_signal_connect (cell, "accel-cleared",
                        G_CALLBACK (gimp_action_view_accel_cleared),
                        view);

      gtk_tree_view_append_column (view, column);
    }

  column = gtk_tree_view_column_new ();
  gtk_tree_view_column_set_title (column, _("Name"));

  cell = gtk_cell_renderer_text_new ();
  gtk_tree_view_column_pack_start (column, cell, TRUE);
  gtk_tree_view_column_set_attributes (column, cell,
                                       "text",
                                       GIMP_ACTION_VIEW_COLUMN_NAME,
                                       NULL);

  gtk_tree_view_append_column (view, column);

  if (select_path)
    {
      gimp_action_view_select_path (GIMP_ACTION_VIEW (view), select_path);
      gtk_tree_path_free (select_path);
    }

  return GTK_WIDGET (view);
}
コード例 #4
0
static VALUE
rg_set_visible_column(VALUE self, VALUE column)
{
    gtk_tree_model_filter_set_visible_column(_SELF(self), NUM2INT(column));
    return self;
}
コード例 #5
0
ファイル: panel-run-dialog.c プロジェクト: braikar/mate-panel
static gboolean
panel_run_dialog_add_items_idle (PanelRunDialog *dialog)
{
	GtkCellRenderer   *renderer;
	GtkTreeViewColumn *column;
	GtkTreeModel      *model_filter;
	GSList            *all_applications;
	GSList            *l;
	GSList            *next;
	const char        *prev_name;

	/* create list store */
	dialog->program_list_store = gtk_list_store_new (NUM_COLUMNS,
							 G_TYPE_ICON,
							 G_TYPE_STRING,
							 G_TYPE_STRING,
							 G_TYPE_STRING,
							 G_TYPE_STRING,
							 G_TYPE_BOOLEAN);

	all_applications = get_all_applications ();

	/* Strip duplicates */
	prev_name = NULL;
	for (l = all_applications; l; l = next) {
		MateMenuTreeEntry *entry = l->data;
		const char     *entry_name;

		next = l->next;

		entry_name = matemenu_tree_entry_get_display_name (entry);
		if (prev_name && entry_name && strcmp (entry_name, prev_name) == 0) {
			matemenu_tree_item_unref (entry);

			all_applications = g_slist_delete_link (all_applications, l);
		} else {
			prev_name = entry_name;
		}
	}

	for (l = all_applications; l; l = l->next) {
		MateMenuTreeEntry *entry = l->data;
		GtkTreeIter    iter;
		const gchar *icon = matemenu_tree_entry_get_icon (entry);
		GIcon *gicon = panel_gicon_from_icon_name (icon);

		gtk_list_store_append (dialog->program_list_store, &iter);
		gtk_list_store_set (dialog->program_list_store, &iter,
				    COLUMN_GICON,     gicon,
				    COLUMN_NAME,      matemenu_tree_entry_get_display_name (entry),
				    COLUMN_COMMENT,   matemenu_tree_entry_get_comment (entry),
				    COLUMN_EXEC,      matemenu_tree_entry_get_exec (entry),
				    COLUMN_PATH,      matemenu_tree_entry_get_desktop_file_path (entry),
				    COLUMN_VISIBLE,   TRUE,
				    -1);

		g_object_unref (gicon);

		matemenu_tree_item_unref (entry);
	}
	g_slist_free (all_applications);

	model_filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (dialog->program_list_store),
						  NULL);
	gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (model_filter),
						  COLUMN_VISIBLE);

	gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->program_list),
				 model_filter);
	//FIXME use the same search than the fuzzy one?
	gtk_tree_view_set_search_column (GTK_TREE_VIEW (dialog->program_list),
					 COLUMN_NAME);

	renderer = gtk_cell_renderer_pixbuf_new ();
	g_object_set (renderer, "stock-size", panel_menu_icon_get_size(), NULL);
	column = gtk_tree_view_column_new ();
	gtk_tree_view_column_pack_start (column, renderer, FALSE);
	gtk_tree_view_column_set_attributes (column, renderer,
                                             "gicon", COLUMN_GICON,
                                             NULL);

	renderer = gtk_cell_renderer_text_new ();
	gtk_tree_view_column_pack_start (column, renderer, TRUE);
	gtk_tree_view_column_set_attributes (column, renderer,
                                             "text", COLUMN_NAME,
                                             NULL);

	gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->program_list), column);

	dialog->add_items_idle_id = 0;
	return G_SOURCE_REMOVE;
}
コード例 #6
0
ファイル: start.c プロジェクト: y20k/ezeedo
/**
 * Shows default first window of Ezeedo
 */
void
activate (GtkApplication *app,
          gpointer        user_data)
{
    // get ezeedo from user data
    ezeedo_wrapper_structure *ezeedo;
    ezeedo = user_data;

    // define widgets
    GtkWidget *window;
    GtkWidget *todo_showall;
    GtkWidget *todo_contexts;
    GtkWidget *todo_projects;
    GtkWidget *donelist;
    GtkWidget *todolist;

    // initialize textlist and add to ezeedo wrapper structure
    textlist_container *main_textlist = calloc (1, sizeof(textlist_container));
    ezeedo->textlist = main_textlist;

    // initialize tasklist and add to ezeedo wrapper structure
    tasklist_container *main_tasklist = calloc (1, sizeof(tasklist_container));
    ezeedo->tasklist = main_tasklist;

    // initialize context_list and add to ezeedo wrapper structure
    category_container *context_list = calloc (1, sizeof(category_container));
    ezeedo->context_list = context_list;

    // initialize project_list and add to ezeedo wrapper structure
    category_container *project_list = calloc (1, sizeof(category_container));
    ezeedo->project_list = project_list;

    // initialize tasks store and add to ezeedo wrapper structure
    GtkListStore *tasks_store = create_tasks_store ();
    ezeedo->tasks_store = tasks_store;


    // create main window for application
    window = create_mainwindow (ezeedo);


    // get todotxt file from gsettings store
    GSettings     *settings;
    gchar *todotxt_file;
    settings     = g_settings_new        ("org.y20k.ezeedo");
    todotxt_file = g_settings_get_string (settings,
                                          "todo-txt-file");
    g_object_unref (settings);

    // if not in gsettings store get todotxt file from file chooser 
    if (strlen(todotxt_file) == 0)
    {
        todotxt_file = open_file_dialog (G_APPLICATION(ezeedo->application));
        // quit application if open file dialog returns NULL
        if (todotxt_file == NULL)
        {
            char text[INFODIALOGLENGTH];
            snprintf (text, INFODIALOGLENGTH,"File chooser returned NULL.");
            show_info (GTK_WIDGET(window),
                       text,
                       true);
            terminate (ezeedo);
        }
        else
        {
            save_file_name_location (todotxt_file);
        }
    }

    // open todo.txt file and load it line by line into a raw text list
    gboolean file_loaded = load_tasklist_file (todotxt_file,
                                               main_textlist);
    if (!file_loaded)
    {
        char text[INFODIALOGLENGTH];
        snprintf (text, INFODIALOGLENGTH,"Could not load file:\n%s", todotxt_file);
        show_info (GTK_WIDGET(window),
                   text,
                   true);
        select_and_save_file (NULL,
                              GTK_APPLICATION(ezeedo->application));
    }

    // parse the raw textlist and load it into the main tasklist and sort it
    gboolean textlist_parsed = parse_textlist (main_textlist,
                                               main_tasklist,
                                               context_list,
                                               project_list);
    if (!textlist_parsed)
    {
        char text[INFODIALOGLENGTH];
        snprintf (text, INFODIALOGLENGTH,"Could not parse file:\n%s", todotxt_file);
        show_info (GTK_WIDGET(window),
                   text,
                   true);
        select_and_save_file (NULL,
                              GTK_APPLICATION(ezeedo->application));
    }
    sort_tasklist (main_tasklist);


    // fill tasks store
    fill_tasks_store (ezeedo);

    GtkTreeModel *filter_todo;
    filter_todo = gtk_tree_model_filter_new (GTK_TREE_MODEL(ezeedo->tasks_store),
                                             NULL);
    gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER(filter_todo),
                                              TASK_NOTCOMPLETED);
 
    GtkTreeModel *filter_done;
    filter_done = gtk_tree_model_filter_new (GTK_TREE_MODEL(ezeedo->tasks_store),
                                             NULL );
    gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER(filter_done),
                                              TASK_COMPLETED);


    // create todolist widget and add to ezeedo wrapper structure
    todolist = build_tasklist (ezeedo,
                               GTK_TREE_MODEL(filter_todo));
    gtk_container_add (GTK_CONTAINER (ezeedo->todolist_box),
                       todolist);
    ezeedo->todolist = todolist;
    /* note to self: better use show_tasklist
    show_tasklist (ezeedo,
                   CATEGORYLIST_ALL
                   -1);*/

    // create donelist and add to ezeedo wrapper structure
    donelist = build_tasklist (ezeedo,
                               GTK_TREE_MODEL(filter_done));
    gtk_container_add (GTK_CONTAINER (ezeedo->donelist_box),
                       donelist);
    ezeedo->donelist = donelist;


    // create showall and add to ezeedo wrapper structure
    todo_showall  = build_show_all (ezeedo);
    gtk_container_add (GTK_CONTAINER(ezeedo->categories_box),
                       todo_showall);
    ezeedo->todo_showall  = todo_showall;


    // create contexts and add to ezeedo wrapper structure
    GtkTreeModel *filter_contexts;
    filter_contexts = fill_category_store (ezeedo,
                                           ezeedo->context_list,
                                           CATEGORYLIST_CONTEXTS);
    todo_contexts = build_categorylist (ezeedo,
                                        GTK_TREE_MODEL(filter_contexts),
                                        "Contexts");
    gtk_container_add (GTK_CONTAINER(ezeedo->categories_box),
                       todo_contexts);
    ezeedo->todo_contexts = todo_contexts;


    // create projects and add to ezeedo wrapper structure
    GtkTreeModel *filter_projects;
    filter_projects = fill_category_store (ezeedo,
                                           ezeedo->project_list,
                                           CATEGORYLIST_PROJECTS);
    todo_projects = build_categorylist (ezeedo,
                                        GTK_TREE_MODEL(filter_projects),
                                        "Projects");
    gtk_widget_set_vexpand (todo_projects,
                            true);
    gtk_container_add (GTK_CONTAINER(ezeedo->categories_box),
                       todo_projects);
    ezeedo->todo_projects = todo_projects; 


    // show main window
    gtk_widget_show_all (window);


    return;
}
コード例 #7
0
ファイル: glaca.c プロジェクト: Lamieur/Lac
/* Tworzenie uniwersalnych list GtkListStore dla wielu kontrolek. Warto zwrocic
   uwage, ze nie oplaca sie przypinac list do kontrolek juz w Glade, bo
   dodawanie elementow do list, ktore sa juz przypiete, trwa dluzej. Dopiero po
   uzupelnieniu list do podpiecia nalezy uzywac gtk_combo_box_set_model( ). */
void zrob_Listy( void )
{
    SORTED_SKILL_DATA *ss;
    ROOM_INDEX_DATA *room;
    MOB_INDEX_DATA *mob;
    OBJ_INDEX_DATA *obj;
    GtkTreeIter iter;
    int i, p;
    char bufor[ MIL ];

    ZNAJDZ_KONTROLKE2( store_pomieszczenia, "store_pomieszczenia", GTK_LIST_STORE );
    g_object_ref( store_pomieszczenia );
    for ( i = 0; i < MAX_KEY_HASH; i++ )
	for ( room = room_index_hash[ i ]; room; room = room->next )
	{
	    sprintf( bufor, "#%d: %s", room->vnum, room->name );
	    gtk_list_store_append( store_pomieszczenia, &iter );
	    gtk_list_store_set( store_pomieszczenia, &iter,
		KOL_WSKAZNIK, room->name,
		KOL_NAZWA, _( bufor ),
		KOL_ELEMENT, room,
		KOL_VIS, TRUE, -1 );
	}
    filter_pom = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_pomieszczenia ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_pom ), KOL_VIS );


    ZNAJDZ_KONTROLKE2( store_moby, "store_moby", GTK_LIST_STORE );
    g_object_ref( store_moby );
    for ( i = 0; i < MAX_KEY_HASH; i++ )
	for ( mob = mob_index_hash[ i ]; mob; mob = mob->next )
	{
	    sprintf( bufor, "#%d: %s", mob->vnum, mob->short_descr );
	    gtk_list_store_append( store_moby, &iter );
	    gtk_list_store_set( store_moby, &iter,
		KOL_WSKAZNIK, mob->short_descr,
		KOL_NAZWA, _( bufor ),
		KOL_ELEMENT, mob,
		KOL_VIS, TRUE, -1 );
	}
    filter_mob = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_moby ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_mob ), KOL_VIS );


    ZNAJDZ_KONTROLKE2( store_przedmioty, "store_przedmioty", GTK_LIST_STORE );
    g_object_ref( store_przedmioty );
    for ( i = 0; i < MAX_KEY_HASH; i++ )
	for ( obj = obj_index_hash[ i ]; obj; obj = obj->next )
	{
	    sprintf( bufor, "#%d: %s", obj->vnum, obj->short_descr );
	    gtk_list_store_append( store_przedmioty, &iter );
	    gtk_list_store_set( store_przedmioty, &iter,
		KOL_WSKAZNIK, obj->short_descr,
		KOL_NAZWA, _( bufor ),
		KOL_ELEMENT, obj,
		KOL_VIS, TRUE, -1 );
	}
    filter_prz = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_przedmioty ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_prz ), KOL_VIS );


    ZNAJDZ_KONTROLKE2( store_czary, "store_czary", GTK_LIST_STORE );
    g_object_ref( store_czary );

    gtk_list_store_append( store_czary, &iter );
    gtk_list_store_set( store_czary, &iter,
	KOL_WSKAZNIK, "(brak)",
	KOL_NAZWA, "(brak)",
	KOL_ELEMENT, -1,
	KOL_VIS, TRUE, -1 );

    for ( ss = sorted_skill_list; ss; ss = ss->next )
	if ( ss->sn ) /* wyfiltrowac "zarezerwowane" */
	{
	    gtk_list_store_append( store_czary, &iter );
	    gtk_list_store_set( store_czary, &iter,
		KOL_WSKAZNIK, skill_table[ ss->sn ].pl_name,
		KOL_NAZWA, _( skill_table[ ss->sn ].pl_name ),
		KOL_ELEMENT, ss->sn,
		KOL_VIS, TRUE, -1 );
	}
    filter_czary = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_czary ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_czary ), KOL_VIS );


    ZNAJDZ_KONTROLKE2( store_materialy, "store_materialy", GTK_LIST_STORE );
    g_object_ref( store_materialy );
    for ( i = 0; i < MAX_MATERIAL; i++ )
    {
	gtk_list_store_append( store_materialy, &iter );
	gtk_list_store_set( store_materialy, &iter,
	    KOL_WSKAZNIK, material_table[ i ].name,
	    KOL_NAZWA, _( material_table[ i ].name ),
	    KOL_ELEMENT, i,
	    KOL_VIS, TRUE, -1 );
    }
    filter_materialy = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_materialy ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_materialy ), KOL_VIS );


    ZNAJDZ_KONTROLKE2( store_plyny, "store_plyny", GTK_LIST_STORE );
    g_object_ref( store_plyny );
    for ( i = 0; i < LIQ_MAX; i++ )
    {
	gtk_list_store_append( store_plyny, &iter );
	gtk_list_store_set( store_plyny, &iter,
	    KOL_WSKAZNIK, liq_table_pl[ i ].liq_name,
	    KOL_NAZWA, _( liq_table_pl[ i ].liq_name ),
	    KOL_ELEMENT, i,
	    KOL_VIS, TRUE, -1 );
    }
    filter_plyny = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_plyny ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_plyny ), KOL_VIS );


    ZNAJDZ_KONTROLKE2( store_rasy, "store_rasy", GTK_LIST_STORE );
    g_object_ref( store_rasy );
    for ( i = 0; i < MAX_RACE; i++ )
    {
	gtk_list_store_append( store_rasy, &iter );
	gtk_list_store_set( store_rasy, &iter,
	    KOL_WSKAZNIK, race_table[ i ].who_name,
	    KOL_NAZWA, _( race_table[ i ].who_name ),
	    KOL_ELEMENT, i,
	    KOL_VIS, TRUE, -1 );
    }
    filter_rasy = gtk_tree_model_filter_new( GTK_TREE_MODEL( store_rasy ), NULL );
    gtk_tree_model_filter_set_visible_column( GTK_TREE_MODEL_FILTER( filter_rasy ), KOL_VIS );

    ZNAJDZ_KONTROLKE2( dprog.store_progi[ 0 ], "prg_store_mprogi", GTK_LIST_STORE );
    ZNAJDZ_KONTROLKE2( dprog.store_progi[ 1 ], "prg_store_rprogi", GTK_LIST_STORE );
    ZNAJDZ_KONTROLKE2( dprog.store_progi[ 2 ], "prg_store_eprogi", GTK_LIST_STORE );
    ZNAJDZ_KONTROLKE2( dprog.store_progi[ 3 ], "prg_store_oprogi", GTK_LIST_STORE );
    for ( p = 0; p <= 3; p++ )
    {
	g_object_ref( dprog.store_progi[ p ] );
	for ( i = 0; *progi[ p ][ i ].name; i++ )
	{
	    gtk_list_store_append( dprog.store_progi[ p ], &iter );
	    gtk_list_store_set( dprog.store_progi[ p ], &iter, 0, _( progi[ p ][ i ].name ), -1 );
	}
    }


    ZNAJDZ_KONTROLKE2( store_typyprzedmiotow, "store_typyprzedmiotow", GTK_LIST_STORE );
    g_object_ref( store_typyprzedmiotow );
    /* tak na wszelki wypadek, bo trudno takie cos znalezc */
    numer_na_typ[ 0 ] = 0;
    typ_na_numer[ 0 ] = 0;
    for ( p = i = 1; i < ITEM_MAX; i++ )
	if ( *typy_przedmiotow[ i ].name )
	{
	    gtk_list_store_append( store_typyprzedmiotow, &iter );
	    gtk_list_store_set( store_typyprzedmiotow, &iter,
				0, _( typy_przedmiotow[ i ].name_pl ), -1 );

	    numer_na_typ[ p ] = i;
	    typ_na_numer[ i ] = p;
	    p++;
	}
	else
	    numer_na_typ[ i ] = ITEM_TRASH;

    return;
}