Emacs цвет скролбара
Доброго времени суток. Что нужно прописать в .emacs что бы изменит цвет скролбара?
Спасибо
Доброго времени суток. Что нужно прописать в .emacs что бы изменит цвет скролбара?
Спасибо
Доброго времени суток ЛОР. Как с помощью Си зная только имя процесса узнать, запущен он в данный момент или нет?
Доброго времени суток ЛОР. Есть следующий код:
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 виджет. Дело в том что при каждом вызове этой функции а следовательно при епждой загрузке и отображении какого-либо изображения прибавляется память занимаемая приложением. В чем проблема вроде все позакрывал?
Спасибо
Доброго времени суток. У меня есть 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 удалялись все данные в нем, и вставлялись только новые.
Спасибо.
Доброго времени суток ЛОР. Есть GtkHBox поделенный на 2 части. На обоих частях присутствует определенный набор виджетов. В свою оченредь этот GtkHBox располагается на GtkVBox. Дело в том что 2 части GtkHBox занимают одинаковое пространство на базовом GtkVBox, в данном случае мне нужно установить ширину 1 части GtkHBox'a, но что бы вторая его часть занимала все свободное пространство. Как этого можно достичь?
Спасибо
Доброго времени суток ЛОР. Опять возникли проблемы в С/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), ¶m);
}
Где 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
Спасибо
Доброго времени суток ЛОР. Нужно сделать окно в 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пасибо.
Доброго времени суток ЛОР, пытаюсь узнать длину 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
Что бы это значило?
Спасибо.
Доброго времени суток ЛОР, есть 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;
}
Кто встречался с подобным, направьте на путь истинный.
Спасибо.
Доброго времени суток ЛОР. Есть 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)
Не могу понять в чем проблема, все инклуды подключены.
Спасибо
Доброго времени суток ЛОР. Пытаюсь создать поток в функции с помощью:
GThread* g_thread_create (GThreadFunc func, gpointer data,
gboolean joinable,GError **error);
Дело в том что func у меня имеет несколько параметров, а точнее 3, как передать один понятно, а вот как несколько? Кто-нидудь встречался с подобным?
Спасибо.
Всем доброго времени суток, на ноутбуке стоит система Ubuntu 9.10 натянул на нее свежий dwm 5.8,1 и все бы прекрасно как ни отсутсвие интернета, когда я под dwm. Интеренет передается по wifi в родном убунтовом гноме все в порядке, networkmanager апплет прекрасно обнаруживает точку и подключается, захожу в dwm интернета нет. В чем может быть дело?
Спасибо.
Доброго времени суток ЛОР. Пытаюсь собрать из исходников 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.
Подскажите как сделать это правильно.
Спасибо
Доброго времени суток ЛОР. Понадобился мне GtkUianager прикрутить, кинулся, а нормальных манов нет. На официальном сайте на gnome docs только описание функций, а вот полноценного примера в частности нужно создание тулбара с GtkUimanger найти не могу :( Подскажите, где я могу ознакомится с примерами.
Всем спасибо
Дброго времени суток ЛОР. Пытаюсь собрать простое приложение написанное на 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
В чем может быть проблема?
Спасибо
Доброго времени суток ЛОР. Установил dwm из реп на свой Debian, все прекрасно встало и запустилось, если бы не одно но, где искать config.h от dwm? Где он расположен?
Спасибо
Доброго времени суток ЛОР. Вот всерьез решил взятся за Emacs с n-ой попытки, в связи с чем у меня появился вопрос как закрыть буфер *scratch*, что прописать в .emacs?
Спасибо.
Доброго времени суток ЛОР! Вот решил попытать счастья на 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.
Кто уже учавствовал, что за форма?
Доброго времени суток ЛОР. В Ruby у строкового типа есть метод scan(), нужна аналогичная функция на python, не подскажите что есть подобное в стандартной библиотеке?
Спасибо
Доброго времени суток ЛОР. Есть ли в gtk или где можно псмотреть пример как реализуется undo/redo для gtk.TextBuffer, желательно без применения GtkSourceView.
Спасибо.
| ← назад | следующие → |