gtkmm - це безкоштовне, просте та портативне програмне забезпечення командного рядка з відкритим кодом, яке реалізовано на C + + і створене з використанням офсетного інтерфейсу для роботи з бібліотекою інструментарію GTK + GUI як частиною GNOME настільне середовище.
Особливості з першого погляду
Серед основних моментів gtkmm ми можемо згадати тиск-безпечні зворотні виклики, а також складний набір віджетів, які розширюються через спадщину. Він має типовий безпеку обробників сигналів, повну інтернаціоналізацію з UTF8, повне керування пам'яттю C ++ (композиція об'єктів та автоматичне вилучення динамічних виділень), повне використання просторів імен C ++ та без макросів.
Початок роботи з gtkmm
Найпростіший спосіб встановити проект gtkmm у вашій системі GNU / Linux - за замовчуванням менеджер упаковки / сховища програмного забезпечення вашого дистрибутива. Якщо пакет недоступний на основних програмних репо з вашого дистрибутива, ви можете завантажити вихідний спосіб з Softoware.
Щоб встановити gtkmm, збережіть tar архів у вибраному вами місці, розпакуйте його вміст, відкрийте емулятор термінала, перейдіть до розташування витягнутого архівного файлу за допомогою & lsquo; cd & rsquo; команду та виконайте команду & lsquo; ./ configure && зробити & rsquo; команду для оптимізації та компіляції вихідного коду.
Потім ви повинні запустити & lsquo; зробити установку & rsquo; команду як root або sudo, щоб розгорнути загальну систему програми gtkmm, щоб зробити її доступною для всіх користувачів. Різні демонстрації надаються розробникам GTK у теці / demos всередині папки джерел.
Підтримувані операційні системи
gtkmm це незалежний від платформи проект, який підтримує GNU / Linux (компілює з GCC), NetBSD (компілює з GCC), FreeBSD (компілює з GCC), Solaris (компілює з GCC або Forte), Microsoft Windows (компілює з GCC або MSVC ++ .Net 2003/2005/2008) та Mac OS X (компілює з GCC). Наразі підтримуються як 32-бітні, так і 64-бітні архітектури набору команд. Це повністю написано на мові програмування C ++.
Що нового в цьому випуску:
- Gtk:
- Редагований, RecentChooser, Масштаб: виправлення витоків пам'яті.
- PrintJob: Виправте виклик до Glib :: throw_exception ().
- Документація:
- Gdk :: RGBA: оновлення ctor (ustring) документів з GTK +
Що нового в версії:
- Gdk:
- Покращити Gdk :: Event, створивши ієрархію класів. (Марк Вендер, Кьєлл Ахсстедт) Помилка # 135978
- Курсор: змінити курсор на тип курсора :: type. (Мюррей Каммінг)
- Пристрій: змінити DeviceType на Cursor :: Type. (Мюррей Каммінг)
- Pixbuf: - Видалити перерахування AlphaMode. - Змінити PixbufRotation на Pixbuf :: Обертання. (Мюррей Каммінг)
- Сидіння: змінити можливості сидіння для сидіння :: Можливості. (Мюррей Каммінг)
- Visual: змінити VisualType на Visual :: Type. (Мюррей Каммінг)
- Вікно: - Змінити WindowHints в вікно :: Підказки. - Змінити WindowTypeHint до вікна :: TypeHint. - Змінити WindowType на Window :: Тип. - Змінити WindowState на Window :: Стан. (Мюррей Каммінг)
- Gtk:
- Помічник: змінити AssistantPageType на помічника :: PageType. (Мюррей Каммінг)
- Box: pack_start / pack_end (): реалізувати з новим GTK + API. (Властивості GtkWidget halign та hexpand. Функція gtk_box_pack_start () і gtk_box_pack_end () більше не мають аргументів розширення та заповнення. Ми також можемо видалити ці параметри пізніше. Будьте обережні, щоб поведінка pack_start / pack_end () була змінена. Зробіть PackOptions класом enum, для чіткої перевірки типу. (Murray Cumming)
- Builder :: get_widget_derived (): зробити це статичним. Щоб уникнути необхідності створити shared_ptr на це. (Murray Cumming) помилка # 755037
- ButtonBox: видалити видимий-непотрібний BUTTONBOX_DEFAULT_SPACING. (Мюррей Каммінг)
- Застосування: змінити ApplicationInhibitFlags на додаток :: InhibitFlags. (Мюррей Каммінг)
- Календар: змініть CalendarDisplayOptions на календар :: дисплей :: параметри. (Мюррей Каммінг)
- CellRendererAccel: змінити CellRendererAccelMode на CellRendererAccel :: Mode. (Мюррей Каммінг)
- CssSection: змінити CssSectionType на CssSection :: Typewq. (Мюррей Каммінг)
- Контейнер: - forall_vfunc (): Вилучити параметр include_internals. - Видалити set_focus_child (), get_focus_child () та ін (Murray Cumming)
- Вхід: змінити EntryIconPosition на вхід :: IconPosition. (Мюррей Каммінг)
- FileFilter: змінити FileFilterFlags на FileFilter :: Прапори. (Мюррей Каммінг)
- FileChooser: - Змініть FileChooserConfirmation на FileChooser :: Підтвердження. - Змініть FileChooserAction на FileChooser :: Дія. (Мюррей Каммінг)
- IconView: змінити IconViewDropPosition на IconView :: DropPosition. (Мюррей Каммінг)
- Зображення: змінити тип зображення на зображення :: тип. (Мюррей Каммінг)
- Мітка: видалити get / set_angle () та властивість. (Мюррей Каммінг)
- LevelBar: змінити рівень LevelBarMode на LevelBar :: Mode. (Мюррей Каммінг)
- Ноутбук: видалити примітку NotebookTab. (Мюррей Каммінг)
- Popover: Зміна PopoverConstraint для Popover :: Обмеження. (Мюррей Каммінг)
- PrintOperation: - Змініть PrintOperationAction на PrintOperation :: Дія. - Змінити PrintOperationResult на PrintOperation :: Результат. (Мюррей Каммінг)
- Діапазон: похід від (і впровадження) орієнтовний. (Muray Cumming) помилка № 781655 (Даніель Боулс)
- RecentFilter: змінити RecentFilterFlags на RecentFilter :: Flags. (Мюррей Каммінг)
- Прокручування: змінити ScrollablePolicy на Scrollable :: Policy. (Мюррей Каммінг)
- ЯрликиShortcut: Виводити безпосередньо з віджету. (Kjell Ahlstedt)
- SizeGroup: Перейменуйте Enum SizeGroupMode в SizeGroup :: Mode. (Мюррей Каммінг)
- SpinButton: - Змініть SpinButtonUpdatePolicy на SpinButton :: UpdatePolicy. - Перемістити константу INPUT_ERROR до класу. (Мюррей Каммінг)
- TextConstIter (TextModel :: const_iterator): додайте конструктор за умовчанням. (Мюррей Каммінг)
- TextMark: уникайте створення RefPtr для цього. Додавання особистого TextBuffer :: get_iter_at_mark () (Murray Cumming) Помилка # 755037 # c21
- TreeModel: змінити TreeModelFlags на TreeModel :: Флаги. (Мюррей Каммінг)
- TreeView: - Змінити TreeViewGridLines на GridLines. - Змініть TreeViewDropPosition на TreeView :: DropPosition. (Мюррей Каммінг)
- TreeViewColumn: змінити TreeViewColumnSizing на TreeViewColumn :: Розміри. (Мюррей Каммінг)
- Віджет: - Видалити get_preferred_width () та ін (Kjell Ahlstedt) - Видалити get / set_center_widget (). (Мюррей Каммінг)
- Вікно: - Видалити get / set_hide_titlebar_when_maximized (). - Видалити has_toplevel_focus () і властивість. (Мюррей Каммінг)
- Документація:
- Gtk :: CellLayout: вдосконалення документів get_first_cell () funcs. (Даніель Боулс)
- Gtk :: TreeModel: вдосконалення документів foreach * () функцій. (Даніель Боулс)
- Gdk, Gtk: оновіть документацію в класах enums. (Kjell Ahlstedt)
- Демо-версії: - Виправте перевірку після зміни в Glib :: SignalProxy :: connect () (Kjell Ahlstedt) Помилка 126213 - Пристосувати до змінної поведінки Box :: pack_start / pack_end (). Наприклад: вкажіть EXPAND_WIDGET, де ми раніше використовували значення за замовчуванням. (Мюррей Каммінг)
- Демонстратор Builder: видалити & quot; розгорнути & quot; дочірня власність з файлу .ui Оскільки вона була вилучена з GtkBox. Розгорніть ScrolledWindow. (Kjell Ahlstedt)
- Створити:
- Пристосовується до cairomm і зміни glibmm enum. (Мюррей Каммінг)
- Пристосувати динамічні відтворення для RefPtr як std :: shared_ptr. (Мюррей Каммінг)
- Створення Visual Studio: Оновити версію glibmm ABI. (Chun-wei Fan)
Що нового в версії 3.89.5.1:
- Gdk:
- Pixbuf: get_pixels (): Поправки до константи. (Мюррей Каммінг)
- Gtk:
- FileChooserDialog:
- Дозволити конструювання з використанням панелі заголовків
- Вилучити конструктори, які приймають параметр backend. (Даніель Боулс) помилка № 780004
- TreeView: Більше використання TreeModel :: const_iterator замість ітератора, де це доцільно. (Мюррей Каммінг)
- Створити:
- Використовуйте glibmm-2.54 замість glibmm-2.52.
Що нового у версії 3.89.3:
- Gtk:
- Grid: attach (): Додати значення за замовчуванням. (Kjell Ahlstedt)
- TextIter:
- TextIter: Зробити справжнім константітератором (Kjell Ahlstedt) помилка # 142126
- forward / backward_find_char (): замість покажчика функції візьміть sigc :: slot. (Kjell Ahlstedt)
- Документація:
- Демо-версії: видалення застарілого тексту з демонстрації TextView (Kjell Ahlstedt)
Що нового у версії 3.89.1:
- Це перший випуск gtkmm-4.0 API / ABI, обгортання GTK + -4.0. Він встановлюється паралельно з gktmm-3.0 API / ABI, останньою версією якого є gtkmm 3.22.0.
- Збірка / Загальне:
- Використовуйте GTK + -4.0 замість GTK + -3.0. (Kjell Ahlstedt)
- Використовувати C ++ 14. (Мюррей Каммінг)
- Використовуйте glibmm-2.52 замість glibmm-2.4, pangomm-2.42 замість pangomm-1.4, а atkmm-2.26 замість atkmm-1.6. Зауважте, що через, glibmm, тепер ми використовуємо libsigc ++ - 3.0 замість libsigc ++ - 2.0. (Мюррей Каммінг)
- Видалити застарілий API. (Kjell Ahlstedt)
- Додайте послідовності сигналів за замовчуванням (на _ * ()), де ми не могли раніше, не розбивши ABI. (Kjell Ahlstedt)
- Gtk:
- Контейнер: додайте () невіртуальне. (Kjell Ahlstedt)
- FontButton: Зніміть з інтерфейсу FontChooser та встановіть його. (Kjell Ahlstedt)
- Мітка (): не використовуйте помилкові назви аргументів. (djb) помилка № 774652
- Об'єкт: видалити gobject_disposed_. (Kjell Ahlstedt)
- ToolButton: виведіть з інтерфейсу Actionable і виконайте його. (Kjell Ahlstedt)
- Віджет: Додати міру () і measure_vfunc (), яка замінює get_preferred _ * _ vfunc (). (Kjell Ahlstedt)
- Вікно: Зробити рейз () невіртуальним. (Kjell Ahlstedt)
- Документація:
- Рамка: Виправте документацію set_label_align () (Kjell Ahlstedt) Помилка # 774249
Що нового у версії 3.22.0:
- Gtk:
- ApplicationWindow: додайте правильний метод wrap (), призупиняючи неправильний. (Kjell Ahlstedt) помилка № 767951
- FlowBox, ListBox: Додати bind_model () і bind_list_store (). (Kjell Ahlstedt, Murray Cumming) # 755149
- UIManager, ActionGroup, RadioAction, RecentAction, ToggleAction: Deprecated, як і в C GTK + API. (Kjell Ahlstedt) помилка № 768573.
- Створити:
- Виправте беззмістовні збірки (Kjell Ahlstedt), помилка # 768797
Що нового в версії 3.21.4:
- Gtk:
- ApplicationWindow: додайте правильний метод wrap (), призупиняючи неправильний. (Kjell Ahlstedt) помилка № 767951
- FlowBox, ListBox: Додати bind_model () і bind_list_store (). (Kjell Ahlstedt, Murray Cumming) # 755149
- UIManager, ActionGroup, RadioAction, RecentAction, ToggleAction: Deprecated, як і в C GTK + API. (Kjell Ahlstedt) помилка № 768573.
- Створити:
- Виправте беззмістовні збірки (Kjell Ahlstedt), помилка # 768797
Що нового у версії 3.19.6:
- Gtk:
- TextIter: Додайте starts_tag (), припиніть start_tag (). (Kjell Ahlstedt)
- TreeView: виправлення помилки в get_tooltip_context_path () (Kjell Ahlstedt) помилка # 760030.
- Gdk:
- Додайте Gdk :: Seat (Kjell Ahlstedt) помилку # 759806.
- Пристрій:
- Додайте get_seat ().
- Знищити grab () і ungrab ().
- DeviceManager, дисплей: додавання та припинення (Kjell Ahlstedt) помилка # 759806.
- DeviceManager: Знизити список_пристроїв () і get_client_pointer (). (Kjell Ahlstedt) помилка № 759806.
- Дисплей:
- Призупинити get_device_manager ().
- Додайте list_seats (), get_default_seat (), signal_seat_added () та signal_seat_removed (). (Kjell Ahlstedt) помилка № 759806.
- Створити:
- C ++ 11: використовуйте ключове слово override, а не віртуальне, для відповідних деструкторів. (Мюррей Каммінг)
Що нового в версії 3.19.3:
- Gdk :: Rectangle: Додати оператор == ( )
- C ++ 11: використання ключового слова, що перевизначає.
Що нового у версії 3.17.4:
- Помічник: Додати get / set_page_has_padding (). (Мюррей Каммінг)
- FontChooser: Додати get / set_font_map (). (Мюррей Каммінг)
- IconInfo: знехтуйте get_builtin_pixbuf (). (Kjell Ahlstedt)
- IconTheme: lookup_icon (), select_icon (): Додати прапорці за замовчуванням 0. (Мюррей Каммінг)
- Віджет: Знизити drag_begin () без координат. (Kjell Ahlstedt)
- Gdk:
- Вікно: додайте get / set_passthrough (). (Мюррей Каммінг)
- Демо: IconTheme: Не використовуйте застарілий API для вбудованих піктограм. (Мюррей Каммінг)
- Створити:
- Не відключайте більше попередження про відмову, ніж це потрібно (Kjell Ahlstedt) Помилка # 750379.
Що нового в версії 3.16.0:
- Gtk:
- Builder: Не отримуйте GTypes, отримані за допомогою gtkmm при аналізі помилки TreeModel (Kjell Ahlstedt) # 742637.
Що нового в версії 3.15.4:
- Gtk:
- Builder :: get_type_from_name_vfunc (): викликати функцію базового класу. Замість того, щоб jusgn викликав g_type_from_name (), у випадку, якщо функція базового класу робить більше. (Kjell Ahlstedt) помилка № 742637.
- TextBuffer:
- Додати insert_martkup ().
- Додайте властивості copy_target_list та paste_target_list. (Kjell Ahlstedt)
- Документація:
- Pixbuf: змініть згадування про Glib :: ResourceError в Gio :: ResourceError. (Kjell Ahlstedt)
Що нового в версії 3.15.3:
- Gtk:
- CssProvider: Додати CssProviderError і signal_parsing_error () (Kjell Ahlstedt)
- Додати CssSection. (Kjell Ahlstedt)
- Діалог: Виправте конструкторів за допомогою DialogFlags. (Kjell Ahlstedt) помилка № 738513 (Симонас Казаускас)
- ScaleButton: - Виправте конструктор. - Додати конструктор без значків. (Мюррей Каммінг)
- ScrolledWindow: додайте get / set_overlay_scrolling () та властивість. (Хуан Р. ГаркАа Бланко)
- Стек: додайте однорідні і однорідні властивості. (Хуан Р. ГаркАа Бланко)
- TextTag: додавання параметрів резервного копіювання, резервного набору, інтервалів між буквами та встановленими інтервалами літер. (Хуан Р. ГаркАа Бланко)
- TextView: додавання властивостей monospace. (Хуан Р. ГаркАа Бланко)
- Віджет: Додано get_action_group () та list_action_prefixes (). (Мюррей Каммінг)
- Документація:
- Додайте порожню рядок після @newin, де вона відсутня. (Kjell Ahlstedt)
- Виправте деякі попередження Doxygen. (Kjell Ahlstedt)
- ScaleButton: документ конструкторів. (Мюррей Каммінг)
Що нового в версії 3.15.2:
- Gtk:
- Діалог: додавати конструктори з DialogFlags, наприклад, для створення діалогу з панеллю заголовків. (Kjell Ahlstedt) помилка # 738513.
- Grid: Додайте attach_next_to () без параметра "sibling". (Kjell Ahlstedt) помилка # 739340.
- Накладання: виправте & quot; починаючи з & quot; документація.
- SearchEntry: додайте сигнал search_changed (Kjell Ahlstedt)
- Додано StyleProperty (Марк Вендер) помилку № 673317.
- Gdk
- Курор: знецініть конструктор, який не приймає параметр "Показати". (Мюррей Каммінг)
- Pixbuf: недоступне create_from_inline (). (Kjell Ahlstedt)
Що нового в версії 3.14.0:
- Документація:
- Демонстрація заголовка: оновіть іконки для перейменованих стрілок. (Kjell Ahlstedt)
- Створити:
- Оновлення та капітальний ремонт проектів Visual Studio 2008 та 2010. (Chun-wei Fan)
- Виправте демонстраційні ролики в Windows. (Chun-wei Fan)
Що нового у версії 3.11.4:
- Gtk:
- Дія, активована: Недостатні методи, які не використовують StockID. Ми не мали на увазі залишити їх позбавленими. (Kjell Ahlstedt)
- CellArea: додайте signal_apply_attributes (). (Kjell Ahlstedt)
- SelectionData: додавання get_data (int & length). (Kjell Ahlstedt)
- ToggleAction: знецінювати створення (), яке використовує (застарілі) StockID (Kjell Ahlstedt)
- ToolItem: Додати unset_proxy_menu_item (). (Kjell Ahlstedt)
- UIManager: Знизити властивість add-tearoffs. (Kjell Ahlstedt)
- Gdk:
- Pixbuf: додайте методи create_from_resource ().
- RGBA, Color: Fix set_hsl (), вдосконалити документацію. (Kjell Ahlstedt) помилка # 720258
- Створити:
- CellArea: Виправлення документації typedef SlotForeachAlloc Додатковий '& gt;' в документах, що вловлюються doxygen 1.8.4 у нескінченному циклі. (Kjell Ahlstedt)
- Виправте збирання за допомогою --disable-deprecated-api (Kjell Ahlstedt)
- Документація:
- Додати відсутні зображення віджетів. (Kjell Ahlstedt)
- AppChooser *: вдосконалення документації. (Kjell Ahlstedt) помилка № 650012
- ColorChooser :: get_rgba (): Додайте документацію (Kjell Ahlstedt)
- SelectionData: Додайте методи документів. (Kjell Ahlstedt)
- ToolItem: Додайте документи класів. (Kjell Ahlstedt)
Що нового в версії 3.10.1:
- Gtk:
- Уникайте включення застарілих запасів. h. Це дозволяє створювати додатки за допомогою застарілих API, які вимкнено.
- RadioAction, RecentAction: Знецінювати конструктори та методи, які використовують StockID. StockID вже не підтримується, тому це не повинно впливати на створення додатків.
Що нового у версії 3.10.0:
- Gtk:
- Недоступні UIManager, Action, ActionGroup, ToggleAction, RadioAction і RecentAction, хоча вони все ще застаріли в API C: див. https://mail.gnome.org/archives/gtkmm-list/2013-October/msg00003.html (Мюррей Каммінг)
- RadioAction: Призупинити конструктор, який використовує StockID. (Мюррей Каммінг)
- ToggleAction: Призупинити конструктор, який використовує StockID (Murray Cumming)
- Застосування: - add / remove_accelerator (): Додати перевантаження без параметра варіанту. (Murray Cumming) - Додати відсутній виклик gtk_init () в одному з конструкторів. (Мюррей Каммінг)
- Кнопка: видаліть непотрібну декларацію BuiltinStockID. (Мюррей Каммінг)
- HeaderBar: Зробити get_show_close_button () const. (Хуан Рафаель ГаркАа Бланко)
- IconView: set_cursor (): додавання версії без параметра комірки (Murray Cumming)
- Місця на стільниці: виправлення помилки за допомогою drag_signals, виправлення деяких OWNERSHIP_ * s, пропускання векторів за посиланням у сигналах (Murray Cumming) Bug # 705642
- Налаштування: додайте create_action ().
- SearchBar: handle_event (): Візьміть GdkEventKey замість GdkEvent. (Мюррей Каммінг)
- Вікно: get_frame_extents (): Додати константну версію. (Мюррей Каммінг)
- Gdk:
- Знизити колір. (Мюррей Каммінг)
- Створити:
- Оновити gtk-demo Проекти MSVC (Chun-wei Fan)
Що нового в версії 3.9.14:
- Gtk:
- Додати SearchBar. (Хуан Рафаель Гарсія Бланко)
- Кнопка: замінити icon_name ctor за допомогою set_image_from_icon_name (). (Kjell Ahlstedt) помилка # 707791
- Масштаб: Конструктор: видаліть значення параметра за замовчуванням, щоб уникнути неоднозначності. (Murray Cumming) помилка # 707810 (cheshirekow)
- Gdk:
- Вікно: Додати set_opaque_region (). (Мюррей Каммінг)
- Інструменти:
- gtk_generate_extra_defs.sh: додайте параметр --make-patch. (Kjell Ahlstedt)
- Створити:
- Оновити проекти Visual Studio (Chun-wei Fan)
Що нового в версії 3.9.12:
- Gtk:
- Кнопка: Додати конструктор, який приймає ім'я та розмір. (Мюррей Каммінг)
- Вхід: Додати get / set_tabs () та властивість. (Мюррей Каммінг)
- Мітка: Додати get / set_lines () та властивість. (Мюррей Каммінг)
- Додати ревелер. (Хуан Р. ГаркАа Бланко) помилка № 705460
- Віджет:
- додати get_scale_factor (). (Мюррей Каммінг)
- Віджет: додайте drag_begin (), що приймає координати x та y. (Мюррей Каммінг)
- Gdk:
- Курсор: оберніть деякі нові функції. (Мюррей Каммінг)
Коментар не знайдено