LINUX.ORG.RU

Ответ на: комментарий от netcat

А, это как в оффтопике. Нет, я таких не видел ни в одной линуксячьей проге.

netcat ★★
()
Ответ на: комментарий от netcat

Это типа вот такого: http://i.msdn.microsoft.com/dynimg/IC41012.png

Собственно, нагуглил такое: http://linux-noob.com/review/fedora/development/images/f8.png В сорцах гномопанели не нашел, значит это не сама панель рисует. Щас скачаю убунту с второгномом и посмотрю, какие еще приложения показывают такие подсказки (смутно помню, что видел там подобное).

geekless ★★
() автор топика

Насколько знаю, стандартного балуна нет, но можно замутить свой. Сделай функцию типа

gtk_show_ballon(BallonType type, char * text, int pos_x, int pos_y) {
    GtkWindow * window = gtk_window_new(GTK_WINDOW_POPUP)
   /* тут всякая подготовка, установка на окно кнопочек, рисование на нём всяких красивостей, подключение/отключение обработчиков */
    gtk_window_move(window, x, y);
    gtk_window_show_all(window);
}
Потом, скажем по нажатия мышки просто вызывай эту функцию, и будет тебе счастье :)

xterro ★★★★★
()
Ответ на: комментарий от geekless

Тут уже придётся рисовать самому. Берём cairo и вперёд. Окно на котором должен появляться Б. известно, координаты появления тоже(либо скраю поля ввода, либо где мышкой ткнёшь). Мне видится это так: В функцию gtk_show_ballon передаёшь свой виждет(окошко, на котором он должен появиться). В функции к этому виджету переподключаешь сигнал expose(g_signal_connect... бла бла бла) и указываешь свой обработчик, в котором уже в зависимости от флага(его тоже можно передать в функцию), либо рисуешь окно с Б., либо просто его обновляешь.

/* код обработчика expose */
if(ballon_visible) {
    cairo_t *cr;
    cr = gdk_cairo_create(widget->window); 
    /* здесь рисуем наш балун, любой формы, на что фантазии хватит */
    
} else {
   /* просто обновляем наш виджет */
} 
xterro ★★★★★
()
Ответ на: комментарий от geekless

Кстати, тема интересная, расскажи потом об успехах :)

xterro ★★★★★
()
Ответ на: комментарий от xterro

Подумалось тут, в принципе можно никакой виджет в функцию не передавать. В функции просто создавай новый GtkWindow типа POPUP и уже у него переопределяй expose-event, и в этом событии рисуй такой балун, какой нужен, хоть звёздочкой. И работать с ним будет удобней )

xterro ★★★★★
()
Ответ на: комментарий от xterro

Там надо shape у окна задавать, а мне лень думать. Я рассчитывал найти готовый. Собственно, нашел на шарпе: http://code.google.com/p/holly-gtk-widgets/wiki/HToolTip http://code.google.com/p/holly-gtk-widgets/source/browse/trunk/HollyLibrary/T...

Надо будет на сях такой виджет замутить и оформить отдельной библиотекой.

geekless ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.