LINUX.ORG.RU

Сообщения shk

 

Emacs цвет скролбара

Форум — General

Доброго времени суток. Что нужно прописать в .emacs что бы изменит цвет скролбара?

Спасибо

shk
()

[C] запущен ли процесс

Форум — Development

Доброго времени суток ЛОР. Как с помощью Си зная только имя процесса узнать, запущен он в данный момент или нет?

 

shk
()

gtk+ утечка памяти

Форум — Development

Доброго времени суток ЛОР. Есть следующий код:

void loading(GtkWidget *widget, const char* file_path, MainWin* mw)
{
	GError* error; 
        gssize n_read;
	gboolean res;
	guchar buffer[LOAD_BUFFER_SIZE];
	GInputStream* input_stream;
	GFile *file = g_file_new_for_path(file_path);

        mw->loader =    gdk_pixbuf_loader_new();
	mw->animation = gdk_pixbuf_animation_new_from_file(file_path,error);	
	input_stream = g_file_read(file, generator_cancellable , NULL);
	
	res = TRUE;
	
	while (1){
		n_read = g_input_stream_read(input_stream, buffer, sizeof (buffer),generator_cancellable,error);
		
		if (n_read < 0) {
                        res = FALSE;
                        error = NULL; 
			            gdk_pixbuf_loader_close(mw->loader,NULL);
			            g_input_stream_close(input_stream,NULL,NULL);  
                        break;
                }
	
	if (n_read == 0)
        break;
	
	if (!gdk_pixbuf_loader_write(mw->loader, buffer, sizeof(buffer), error)){
	   res = FALSE;
	   g_input_stream_close(input_stream,NULL,NULL);
	   gdk_pixbuf_loader_close(mw->loader,NULL);
       break;
	   }
	
	if (res){		

      if ( !gdk_pixbuf_animation_is_static_image(mw->animation ) )
		gtk_action_group_set_sensitive(rotation_actions, FALSE);
	  else
		gtk_action_group_set_sensitive(rotation_actions, TRUE);
        		
		mw->animation = gdk_pixbuf_loader_get_animation((mw->loader));
	    gtk_anim_view_set_anim (mw->aview,mw->animation);	
	}
  }
	g_input_stream_close(input_stream,NULL,NULL);
	gdk_pixbuf_loader_close(mw->loader,NULL);
}

Данный код загружает изображение расположенное по адресу file_path в GtkAnimView виджет. Дело в том что при каждом вызове этой функции а следовательно при епждой загрузке и отображении какого-либо изображения прибавляется память занимаемая приложением. В чем проблема вроде все позакрывал?

Спасибо

shk
()

[gtk+] Подскажите как грамотно обновить GtkIconView

Форум — Development

Доброго времени суток. У меня есть GtkIconView на форме. В него загружаются изображения определенного размера, следующим образом:

mw->img_list - список адресов файлов.

void loading_data(MainWin* mw, const char* file_path)
{
  ...
  // при каждой загрузке модель очищается
  gtk_list_store_clear(mw->model);
  ...
  GtkTreeIter iter;
  int i = 0;
  for (i; i < g_list_length(mw->img_list) - 1; ++i)
  {			  
    char* file = image_list_get_current_file_path(mw->img_list );	
			
    mw->p1 = gdk_pixbuf_new_from_file(file,NULL);
    mw->p1 = scale_pix(mw->p1,64);

    gtk_list_store_append(mw->model, &iter);
    gtk_list_store_set(mw->model, &iter, COL_DISPLAY_NAME, 

    image_list_get_current(mw->img_list), COL_PIXBUF, mw->p1, -1);   
			
    list = g_list_append(list,file);
		  
    if (!mw->img_list->current->next )
	image_list_get_first(mw->img_list);
    else
        image_list_get_next(mw->img_list);
  }
	gtk_icon_view_set_text_column(GTK_ICON_VIEW(mw->view),0);
        gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(mw->view), 1);
        gtk_icon_view_set_selection_mode(GTK_ICON_VIEW(mw->view), GTK_SELECTION_SINGLE);

g_signal_connect(mw->view,"selection-changed",G_CALLBACK(thumbnail_selected),mw);
}

Теперь мне нужно загрузить в другой виджет изображение выделенное в GtkIconView.

void thumbnail_selected(GtkWidget* widget, MainWin* mw)
{
  GList* list1 = gtk_icon_view_get_selected_items(mw->view1); 
  char* b = gtk_tree_path_to_string(list1->data); 
  
  int n = atoi(b);
  char* c = g_list_nth_data(list,n);
	
  loading_data(mw,c);
}

Но так как в начале функции стоит gtk_list_store_clear(mw->model); вылетает сегфолт. Если убрать вызов gtk_list_store_clear то в GtkIconView будут подгружаться каждый раз новые изображения, но старые удалятся не будут. А мне нужно что бы при каждом обновлении GtkIconView удалялись все данные в нем, и вставлялись только новые.

Спасибо.

shk
()

[gtk+] GtkHBox расположение виджетов

Форум — Development

Доброго времени суток ЛОР. Есть GtkHBox поделенный на 2 части. На обоих частях присутствует определенный набор виджетов. В свою оченредь этот GtkHBox располагается на GtkVBox. Дело в том что 2 части GtkHBox занимают одинаковое пространство на базовом GtkVBox, в данном случае мне нужно установить ширину 1 части GtkHBox'a, но что бы вторая его часть занимала все свободное пространство. Как этого можно достичь?

Спасибо

shk
()

[gtk] Опять проблемы с `GTK_IS_WINDOW (window)' failed

Форум — Development

Доброго времени суток ЛОР. Опять возникли проблемы в С/gtk+ приложении и опять GTK_IS_WINDOW (window)' failed. На этот раз пытаюс поменять заголовок главного окна в зависимости от загруженного файла.

Функция обновления заголовка:

void update_title(const char *filename, MainWin* mw )
{
    GtkButton* btn = gtk_button_new();
    static char fname[50];

    if(filename != NULL)
    {
      strncpy(fname, filename, 49);
      fname[49] = '\0';
    }
	A param;
	param.mw = (GtkWindow*)mw;
	param.fname = "ASD";
	
	gtk_window_set_title(GTK_WINDOW(mw), fname);
	g_signal_connect(btn, "clicked", G_CALLBACK(gtk_window_set_title), &param);
}

Где A - структура для передачи параметров в gtk_window_set_title:

typedef struct _a
{
  MainWin* mw;
  char *fname;
}A;

Когда вызываю функцию заголовок окна не изменяется и вылазит ошибка:Gtk-CRITICAL **: gtk_window_set_title: assertion `GTK_IS_WINDOW (window)' failed

Спасибо

 

shk
()

[C/gtk+] FullScreen окна

Форум — Development

Доброго времени суток ЛОР. Нужно сделать окно в gtk+ приложении на весь экран. Пытаюсь сделать с помощью: gtk_window_fullscreen(GtkWindow* Window). Есть функция:

static void
full_screen(MainWin *mw)
{
    gtk_window_fullscreen((GtkWindow*)mw);
}

где MainWin cтруктура вида:

typedef struct _MainWin MainWin; 

typedef struct _MainWin 
{ 
    GtkWindow parent; 
    GtkWidget* scroll; 
    GtkWidget* box; 
    GtkWidget *toolbar; 
    gboolean full_screen; 
};

При попытке вызова функции получаю следующее: Gtk-CRITICAL **: gtk_window_fullscreen: assertion `GTK_IS_WINDOW (window)' failed

Что-то не пойму в чем проблема?

Cпасибо.

shk
()

[C/gtk+] Работа с GList

Форум — Development

Доброго времени суток ЛОР, пытаюсь узнать длину GList в моем gtk+ приложении с помощью g_list_length(GList list), но вылетает странная ошибка:

Program received signal SIGSEGV, Segmentation fault. [Switching to >Thread 0xb73c4700 (LWP 7936)] IA__g_list_length (list=0x6e6920) at >glist.c:767 767 glist.c: No such file or directory. in glist.c


Что бы это значило?

Спасибо.

shk
()

[gtk+] Пример применения GCancellable

Форум — Development

Доброго времени суток ЛОР, есть C/gtk+ приложение, состоящее из формы и одной функции, которая запускается в отдельном потоке во время загрузки формы, так вот мне нужно заюзать GCancellable для того что бы отменить в любой момент времени, перерыл все интернеты, но нигде не могу найти пример как применить этот самый GCancellable.

Сама функция выполняет загрузку данных:

gboolean 
main_win_open( MainWin* mw, const char* file_path)
{	    
	GError *error;
	GInputStream* input_stream;
	GFile *file = g_file_new_for_path(file_path);
    
	gssize n_read;
	gboolean res;
	guchar buffer[LOAD_BUFFER_SIZE];
	
	input_stream = g_file_read(file,generator_cancellable ,NULL);
	
	res = TRUE;
	while (1){
		n_read = g_input_stream_read(input_stream, buffer, sizeof (buffer),generator_cancellable,error);
	}

	gtk_widget_show_all(mw->box);
	
	return TRUE;
}

Кто встречался с подобным, направьте на путь истинный.

Спасибо.

shk
()

[C] error: undeclared function

Форум — Development

Доброго времени суток ЛОР. Есть gtk+ приложение, представляющее из себя форму с тулбаром и кнопками на нем. Тулбар построен с помощью GtkUIManager, пытаюсь прикрутить событие к кнопке на тулбаре, делаю следующее:

ui.h - Код описывающий тулбар:

#include "mainwin.h"
static const GtkActionEntry entries[] = {
    {
      "Go Back",
      GTK_STOCK_GO_BACK,
      "Go Back",
      "<control>b",
      "Go Back",
       G_CALLBACK(on_prev)
    },
}

В файле mainwin.c, функция on_prev:

void on_prev(GtkWidget *widget, MainWin *win)
{
   ...
}

Но при попытке скомпилировать проект вылетает ошибка: ui.h:error: 'on_prev' undeclared here (not in a function)

Не могу понять в чем проблема, все инклуды подключены.

Спасибо

 

shk
()

[gtk+] Передача нескольких аргументов в g_thread_create

Форум — Development

Доброго времени суток ЛОР. Пытаюсь создать поток в функции с помощью:

GThread* g_thread_create (GThreadFunc func, gpointer data,
                          gboolean joinable,GError **error);

Дело в том что func у меня имеет несколько параметров, а точнее 3, как передать один понятно, а вот как несколько? Кто-нидудь встречался с подобным?

Спасибо.

shk
()

Отсутствие интернета в dwm

Форум — General

Всем доброго времени суток, на ноутбуке стоит система Ubuntu 9.10 натянул на нее свежий dwm 5.8,1 и все бы прекрасно как ни отсутсвие интернета, когда я под dwm. Интеренет передается по wifi в родном убунтовом гноме все в порядке, networkmanager апплет прекрасно обнаруживает точку и подключается, захожу в dwm интернета нет. В чем может быть дело?

Спасибо.

shk
()

Установка glib-2.17.6 и удаление более новой версии glib

Форум — General

Доброго времени суток ЛОР. Пытаюсь собрать из исходников gtk+-2.15, но он требует glib-2.17.6. Собрал glib-2.17.6, запускаю ./confgiure для gtk, но он мне выдает что нужно удалить еще и более новую версию glib:

*** 'pkg-config --modversion glib-2.0' returned 2.17.6, but GLIB (2.17.7)
*** was found! If pkg-config was correct, then it is best
*** to remove the old version of GLib.

Подскажите как сделать это правильно.

Спасибо

shk
()

GtkUiManager туториал с примерами

Форум — Development

Доброго времени суток ЛОР. Понадобился мне GtkUianager прикрутить, кинулся, а нормальных манов нет. На официальном сайте на gnome docs только описание функций, а вот полноценного примера в частности нужно создание тулбара с GtkUimanger найти не могу :( Подскажите, где я могу ознакомится с примерами.

Всем спасибо

shk
()

[C] undefined reference to `some_foo'

Форум — Development

Дброго времени суток ЛОР. Пытаюсь собрать простое приложение написанное на C/gtk+. Проек состоит из 3 файлов .h/.c и main.c. В хедере объявлена функция:

int some_foo();

Ее реализация в .c файле:

int some_foo()
{
return 1;
}

Пытаюсь вызвать функцию some_foo из функции main, находящийся в main.c, но получаю ошибку: undefined reference to `some_foo'. В чем проблема, по идее должна прекрасно вызываться, хедер к майну подключен. IDE NetBeans. Компилирую следуюющим образом - в makefile:

gcc -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/pixman-1 -Werror-implicit-function-declaration -g -O2 -o gpicview gpicview-gpicview.o -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 out.o

В чем может быть проблема?

Спасибо

 

shk
()

[dwm] Где искать config.h

Форум — Desktop

Доброго времени суток ЛОР. Установил dwm из реп на свой Debian, все прекрасно встало и запустилось, если бы не одно но, где искать config.h от dwm? Где он расположен?

Спасибо

 

shk
()

[Emacs] закрыть буфер

Форум — General

Доброго времени суток ЛОР. Вот всерьез решил взятся за Emacs с n-ой попытки, в связи с чем у меня появился вопрос как закрыть буфер *scratch*, что прописать в .emacs?
Спасибо.

 

shk
()

GSoC Сертификация

Форум — Talks

Доброго времени суток ЛОР! Вот решил попытать счастья на Google Summer of Code в этом году, регистрируясь как студент прочитал в правилах следующее:

If you are a student residing outside the United States, you must submit a Foreign Certification form to Google, and no tax form will be issued subsequently.

Кто уже учавствовал, что за форма?

shk
()

[Ruby] метод scan()

Форум — Development

Доброго времени суток ЛОР. В Ruby у строкового типа есть метод scan(), нужна аналогичная функция на python, не подскажите что есть подобное в стандартной библиотеке?

Спасибо

 

shk
()

[gtk] undo/redo

Форум — Development

Доброго времени суток ЛОР. Есть ли в gtk или где можно псмотреть пример как реализуется undo/redo для gtk.TextBuffer, желательно без применения GtkSourceView.
Спасибо.

 

shk
()

RSS подписка на новые темы