LINUX.ORG.RU

Сообщения g-71

 

Восстановление почту в Thunderbird

Случилась такая проблема. 100% моя вина, к сожалению, теперь пытаюсь как-то исправится. Вообщем есть ящик ***@ovi.com и они сейчас вроде как объединяются в единый почтовый сервер с yahoo, вообщем этом неважно. Смысл в том, что пропала абсолютна вся почта, которая была (вот такая крутая интеграция у нокии). Я обычно просматривал почту через браузер, но и иногда через Thunderbird, письма туда скачивались, но сейчас там тоже пусто, видимо у меня стоит какая-то синхронизация с ящиком или если нет письма на ящике - он удаляет его и у себя. Вообщем, каким-то образом можно это восстановить средствами Thunderbird, потому что уже 2 день нокия обещает, что все письма вернут, а мне они срочно нужны.

g-71
()

Стоимость компьютеров с процессором Эльбрус

Кто-нибудь может сказать примерную стоимость компьютеров с российским процессором «Эльбрус», в принципе можно любой модели

g-71
()

[GTK+, Cairo] Как установить шрифт GtkFontButton в cairo_set_font_face?

Получаю шрифт из GtkFontButton с помощью

const gchar* gtk_font_button_get_font_name (GtkFontButton *font_button);

и нужно каким-то образом установить его в

void cairo_set_font_face (cairo_t *cr, cairo_font_face_t *font_face);

Как это можно осуществить?

g-71
()

[GTK+] Вывод альтернативного значения в GtkTreeView при пустом поле в GtkListStore

У меня есть GtkListStore с двумя полями скрин из Glade.

одно gchararray - G_TYPE_STRING а другое - G_TYPE_INT

Этот GtkListStore связан с GtkTreeView скрин из Glade

Вопрос в следующем: каким образом можно организовать вывод альтернативного значения в втором объекте отображения cellrenderertextValue. Т.е. есть флаг chkbutValueFlag - это обычный GtkCheckButton. И при добалвении новой строки (событие on_butAdd_clicked) я смотрю на него. Если он установлен - я добавляю и 0 и 1 столбец в GtkListStore, если не установлен, то добавляю только 0 столбец GtkListStore, т.е. столбец 1 по сути пустой, но при этом в GtkTreeView отображается 0. А я хочу например вывести тест туда: «нет значения». Как это можно реализовать? Есть вариант конечно сделать второе поле не G_TYPE_INT, а так же G_TYPE_STRING и делать преобразования типов, но это не очень здорово.

void on_butAdd_clicked(GtkWidget *button, gpointer data)
{
    MainWindowObjects* mwo = (MainWindowObjects*)data;
    GtkTreeIter iter;
    gtk_list_store_append(GTK_LIST_STORE( mwo->liststoreValues ), &iter);
    if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON(mwo->chkbutValueFlag ) ) )
    {
        gtk_list_store_set(GTK_LIST_STORE( mwo->liststoreValues ), &iter, NAME, gtk_entry_get_text(mwo->entryName),
                                                                      VALUE, static_cast<int>( gtk_adjustment_get_value(mwo->adjValue) ),
                                                                      -1 );
    }
    else
    {
        gtk_list_store_set(GTK_LIST_STORE( mwo->liststoreValues ), &iter, NAME, gtk_entry_get_text(mwo->entryName), -1 );
    }    
}
g-71
()

Паттерн «Компановщик». Как разным объектам добавлять разные свойства и обрабатывать их? Как выделить класс холст?

Есть базовый класс cObject

от него идут производные классы cCompositeObject cRectangle cProgressBar cLabel cEllipse ............

Реализовано всё это по паттерну Компановщик в cObject есть методы:

virtual void AddPrimitive( cObject* obj ) {}
virtual void Draw(GtkWidget *drawingarea) = 0;
а в cCompositeObject:
void Draw(GtkWidget *drawingarea);
void AddPrimitive( cObject* obj );

std::list<cObject*> m_elements;

У меня возникает два вопроса: 1) Если у каждого объекта есть свои свойства: например, у cRectangle: BorderColor, ForegroundColor у cLabel: Text, TextColor у cProgressBar: Value и т.д. как оптимальнее всё это организовать? Как сделать удобный доступ к ним? Что посоветуйте?

2) Мне говорили, что необхожимо выделить класс холст, т.к. объект не знает на ЧЁМ он рисует, но тут же паттерн компановщик и идёт грубо говоря рекурсивное рисование:

void cCompositeObject::Draw(GtkWidget *DrawingArea)
{
  for(CEitem_type it = begin(); it !=  end(); ++it)
    (*it)->Draw(DrawingArea);
}

как я могут избавить в объектах от прямого задания холста GtkWidget *DrawingArea) ?

Если можно приведите какие-нибудь примеры, будет понятнее, спасибо!

g-71
()

Проконсультируйте по проектированию классов для редактора

У меня очень слабые навыки проектирования программного обеспечения и мне нужно проконсультироваться немного по поводу создания специализированного векторного графического редактора. Я набросал UML схему, правда она неполная. «Каркас» построен на паттерне компановщик. В качестве «Leaf» я привёл пример cRectangle. А в качестве «Composite» - cCompositePrimitive. Класс cManipulator выполняет операции над cCompositePrimitiveю Методов в классах cCompositePrimitive и cManipulator намного больше, чем я написал. И это на мой вгляд очень плохо. Смысл ведь в том, что как бы главный объект здесь - объект класса cCompositePrimitive и в него добавляются все примитивы в том числе и объекты класса cCompositePrimitive. И так получается, что часть методов которые необходимы только для «корневого» cCompositePrimitive - грубо говоря методы для операций на объектами холста, есть и в самих объектах cCompositePrimitive расположенных на холсте. Каким образом лучше как-то разграничить методы, которые необходимы только корневой и не нужны для обычных составных объектов. Эти методы в cCompositePrimitive оканчиваются на «_». И вот как лучше в cManipulator передавать корневой cCompositePrimitive как член класса cManipulator или просто как в каждый метод класса cManipulator добавить входный параметр - указатель на cCompositePrimitive?

g-71
()

[GTK+, Glade] Как с помощью Glade задать у GtkListStore поле типа GDK_TYPE_COLOR ?

Как с помощью Glade задать у GtkListStore поле типа GDK_TYPE_COLOR ?

Не могу в большом выпадающем списке Column type у GtkListStore (вкладка General) найти GDK_TYPE_COLOR, чтобы можно было цвета добавлять и цеплять их к различным параметрам GtkTreeView.

Есть вариант использовать garraychar и цеплять его к Foreground Color Name. Но там надо будет цвет как стрку вводить: типа Red, Yellow, а мне хочется именно чтобы можно было задать GdkColor.

g-71
()

[GTK+, Glade] Сигнал edited у GtkCellRendererSpin, как получить GtkTreeView?

В library.gnome.org написано, что смотреть часть сигналов для GtkCellRendererSpin у GtkCellEditable. Мне нужно получить GtkTreeView, которому принадлежит GtkCellRendererSpin, когда закончилось редактирование

The edited signal описывается здесь

extern "C" void cellrenderer1_edited  (GtkCellRendererText *renderer,
                            gchar               *path,
                            gchar               *new_text,
                            gpointer             user_data) 

В книжке Krause - Foundations of GTK Development для моей задачи приводится другой код функции:

extern "C" void cellrenderer1_edited(GtkCellRendererText *render, gchar *path, gchar *new_text, GtkTreeView *treeview)
но к сожалению treeview получается неверный и получить из него его GtkListStore не представляется возможным. Поидее можно использовать первый вариант функции и из user_data получать необходимый GtkListStore, но хотелось бы всё-таки получить из параметров функции edited - это возможно?

g-71
()

[GTK, Glade] Вопрос по GtkCellRendererSpin, как задать в ListStore для него Adjustment?

У меня есть созданный уже GtkListStore и я добавил GtkTreeView для отображения содержимого GtkListStore. Для того, чтобы вывести например поле gint из GtkListStore я могу использовать GtkCellRendererText (указав свойство Text на необходимое поле из GtkListStore) или GtkCellRendererProgress (указав свойство Value на необходимое поле из GtkListStore).

А каким образом я могу настроить GtkCellRendererSpin ? Задача: чтобы в поле можно было использовать Spin Button. Вот здесь скрин свойств GtkCellRendererSpin. Я так понимаю нужно каким-то образом в GtkListStore задать Adjustment. Но в Glade при добавлении в GtkListStore колонок, нет типа Adjustment. Там куча всяких типов (gchar, guchar, gint, gchararray, gboolean... GtkSortType, GtkUpdateType, GtkResizeMode, GtkResizeStyle... PangoStyle... и т.д. там их много ). Есть например GtkSpinButtonUpdatePolicy - но если его добавить в GtkListStore и потом прицепить к GtkCellRendererSpin, то как его тогда использовать в коде при: gtk_list_store_set

Кто-нибудь вообще работал с GtkCellRendererSpin, что можете подсказать?

g-71
()

[valgrind] Объясните что означают пункты в итогах LEAK SUMMARY

Использую valgrind для обнаружения утечек помяти в своём C++ приложении. В конце выполнения мне выдаются итоги, можете объяснить что означает definitely и indirectly и т.д. ? И какие возможны причины конкретных этих утечек?

LEAK SUMMARY:
definitely lost
indirectly lost
possibly lost
still reachable
suppressed


Спасибо большое за ответы (нажеюсь они будут), я задаю этот вопрос, потому что нужно очень срочно разобраться, конечно следовало бы почитать хорошенько по этой теме. Надеюсь на понимание.

 

g-71
()

[Gtk+] Можно ли хранить в GtkListStore поле обобщенного типа?

Можно ли хранить в GtkListStore поле обобщенного типа? т.е. чтобы можно было туда добавить и int и GdkColor например

g-71
()

Подскажите какую структуру данных оптимальнее использовать для моей задачи

Вообщем задача такая:
есть некий входной поток данных представляющий собой сообщения:

одно сообщение представляет собой

string id;
double value;

т.е. идентификатор сообщения и значение некоторое;

есть объект, у этого объекта есть некие свойства (например цвет1, цвет2, ширина, высота и т.д.)

к каждому свойству можно прицепить один id и нужно в зависимости от value изменять свойство
например: цвет2 <-> idMes1 и далее в зависисмоти от value меняем свойство цвет2.

Поидее напрашивается ассоциативный массив <map> типа ключе value - значение цвет, но тут некуда запихнуть id...

какие можно еще варианты придумать?

g-71
()

[GTK, Glade] Как организовать кнопки переключатели

Какие виджеты следует использовать, если нужно сделать кнопки, зависимые друг от друга. Т.е. если нажимаю одну, выключается предыдуще включеная. Что-то типа палитры примитовов в том же фотошопе. Я так понимаю, нужно объединить их в какую-то группу...

g-71
()

[GTK+, NetBeans] Проблема при сборке релиза

Когда в Set Project Configuration установлен Debug всё нормально компилится, всё отлично работает, когда перевожу в Release - вылетает куча ошибок

mkdir -p build/Release/GNU-Linux-x86
rm -f build/Release/GNU-Linux-x86/Ellipse.o.d
g++    -c -O2 -MMD -MP -MF build/Release/GNU-Linux-x86/Ellipse.o.d -o build/Release/GNU-Linux-x86/Ellipse.o Ellipse.cpp
                 from Ellipse.cpp:1:
In file included from Ellipse.h:5,
DrawObject.h:15: error: ‘GtkWidget’ has not been declared
DrawObject.h:25: error: ‘GtkTreeModel’ has not been declared
DrawObject.h:25: error: ‘GtkTreeIter’ has not been declared
DrawObject.h:25: error: ‘GtkTreeIter’ has not been declared
DrawObject.h:31: error: ‘GtkWidget’ has not been declared
#ifndef __DRAWOBJECT__
#define __DRAWOBJECT__

#include <gtk-2.0/gtk/gtk.h>
#include <string>

#include "pugixml.hpp"

class CDrawObject
{
public:
	CDrawObject(void) {}
	virtual ~CDrawObject(void) {};
	
	virtual void Draw(GtkWidget *drawingarea) = 0;


        virtual void FillStoreModel(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* child) = 0;	


	virtual void DrawMarker(GtkWidget*, const int x, const int y);	

в чём проблема? видимо для релиза какие-то свои особенности, где можно про это почитать?

g-71
()

[C++] Header-файл с define'ами

Извиняюсь за глупый вопрос... Если я использую один .h файл для описания констант, мне нужно делать защиту от повторного включения?

#define MARKER_RADIUS_SIZE 4
#define MIN_RECTANGLE_SIZE 8

или

#ifndef __GRAPHICSETTINGS_H__
#define __GRAPHICSETTINGS_H__

#define MARKER_RADIUS_SIZE 4
#define MIN_RECTANGLE_SIZE 8

#endif __GRAPHICSETTINGS_H__

при компиляции последнего, выдаётся warning

GraphicSettings.h:7:8: warning: extra tokens at end of #endif directive

 

g-71
()

[GTK, Glade] GtkComboBox и GtkBuilder - не работает Item

В Glade добавил GtkComboBox - но написано, что свойство Item доступно только в libglade format. в Project file format: GtkBuilder

И вообще как-то хреново ComboBox работает, пробовал из кода добавить Item'ы предварительно подрубив из Glade liststore- нифига.

 mainWindowObjects.cbxListOfObjectProperties = GTK_COMBO_BOX(gtk_builder_get_object(builder, "cbxListOfObjectProperties"));
   gtk_combo_box_append_text( GTK_COMBO_BOX( mainWindowObjects.cbxListOfObjectProperties ), "Border Color" );
   gtk_combo_box_append_text( GTK_COMBO_BOX( mainWindowObjects.cbxListOfObjectProperties ), "Border Width" );
   gtk_combo_box_append_text( GTK_COMBO_BOX( mainWindowObjects.cbxListOfObjectProperties ), "Foreground color" );
g-71
()

[GTK+, Glade] Переопределить событие закрытия (нажатия крестика) GtkDialog

У меня есть GtkDialog, созданный в Glade. У меня есть несколько вопросов по нему:

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

2) Какое свойство отвечает за то, чтобы убрать кнопку свернуть окно?


g-71
()

[GTK+] Добавление картинки и текста в gtk_cell_renderer_pixbuf и gtk_cell_renderer_text, находящихся в одной колонке gtk_tree_view_column

Мне необходимо сделать так, чтобы можно было добавлять, используя gtk_tree_store_append и gtk_tree_store_set поля в GtkTreeStore, но чтобы поле представляло из себя gtk_cell_renderer_pixbuf и gtk_cell_renderer_text. Т.е. была одна колонка, в которой два gtk_cell_renderer один pixbuf другой text. Возможно ли это? В данный момент у меня две колонки в gtk_tree_view, одна для pixbuf другая для text

col = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(col, "First Name");
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(col, renderer, TRUE);
gtk_tree_view_column_add_attribute(col, renderer, "text", COL_FIRST_NAME);

аналогично создаётся для pixbuf

добавление нормально работает

......
gtk_tree_store_append(treestore, &child, &toplevel);
gtk_tree_store_set(treestore, &child,
                     COL_FIRST_NAME, "Janinita",
                     COL_PIXBUF, pixbuf,                     
                     -1);
......
Это всё нужно чтобы отображать строку (текст + рисунок) как единое целое. А сейчас отображаются две колонки и не очень удачно смотрится. Есть ли какие-то варианты решения? gtk_tree_store_set обращается при добавление ведь к колонкам

g-71
()

[GTK+]. Использовать в gdk_rgb_gc_set_foreground или gdk_gc_set_foreground значение GtkColorButton

Получаю в color значение цвета из GtkColorButton (colorbuttonBG)

MainWindowObjects* mwo = (MainWindowObjects*)data;
GdkColor color;
gtk_color_button_get_color (mwo->colorbuttonBG, &color);
g_print("COLOR: %x %d %d %d \n", color.pixel, color.red, color.green, color.blue);
но если использовать color в gdk_gc_set_foreground напрямую
gdk_gc_set_foreground(gc, &color);
будет выдаваться каждый раз разный цвет, color.pixel каждый раз разный а для gdk_rgb_gc_set_foreground вообще нужен guint32 rgb

может быть можно как-то преобразовать color.red, color.green, color.blue в guint32

или есть какие-нибудь другие варианты

g-71
()

[GTK+]. GtkColorButton каждый раз выдаёт разные цвета

прописал этот код на событие нажатия и каждый раз в консоль выдаётся разный color4.pixel, хотя ничего не меняю, а мне нужен именно тот цвет который установлен в colorbuttonBG (это GtkColorButton)

MainWindowObjects* mwo = (MainWindowObjects*)data;
GdkColor color4;
gtk_color_button_get_color (mwo->colorbuttonBG, &color4);
g_print("COLOR: %x %d %d %d \n", color4.pixel, color4.red, color4.green, color4.blue);

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

g-71
()

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