#gtk #gtk3 #vala #elementary
Вопрос:
Пытаюсь использовать libhandy
и Hdy.ApplicationWindow
вместо Gtk.ApplicationWindow
этого в моем приложении на основе vala, созданном для элементарной ОС.
моя проблема
- При использовании
Hdy.ApplicationWindow
иHdy.HeaderBar
вместоGtk.ApplicationWindow
иGtk.HeaderBar
я не могу заставить окно приложения перемещаться , перетаскиваяHeaderBar
. - Я могу переместить окно в своем рабочем пространстве, перетащив
Gtk.HeaderBar
, но не в случаеHdy.HeaderBar
- В
Hdy.HeaderBar
я вынужден нажатьsuper
клавишу и перетащить, чтобы окно переместилось.
Исходный код приложения
public class Application : Gtk.Application {
protected override void activate () {
//Gtk.ApplicationWindow app_window = new Gtk.ApplicationWindow (this);
var gtk_settings = Gtk.Settings.get_default ();
var hdy_window = new Hdy.ApplicationWindow ();
var header_bar = new Hdy.HeaderBar ();
var overlaybar = new Granite.Widgets.OverlayBar ();
hdy_window.application = this;
var dark_mode_switch = new Granite.ModeSwitch.from_icon_name (
"display-brightness-symbolic",
"weather-clear-night-symbolic"
);
//New Document
var welcome_page = new Granite.Widgets.Welcome ("Ordne", "A simple Pomodoro Timer.");
welcome_page.append ("document-open-recent", "Start Working", "Begin the Working Countdown.");
welcome_page.append ("preferences-system", "Pomodoro Preferences", "Change Break and Working Duration");
var grid_welcome = new Gtk.Grid () {
orientation = Gtk.Orientation.VERTICAL
};
dark_mode_switch.primary_icon_tooltip_text = ("Light background");
dark_mode_switch.secondary_icon_tooltip_text = ("Dark background");
dark_mode_switch.valign = Gtk.Align.CENTER;
dark_mode_switch.bind_property ("active", gtk_settings, "gtk-application-prefer-dark-theme", GLib.BindingFlags.BIDIRECTIONAL);
header_bar.show_close_button = true;
header_bar.title = "Ordne";
header_bar.pack_end(dark_mode_switch);
grid_welcome.add(header_bar);
grid_welcome.add(welcome_page);
hdy_window.window_position = Gtk.WindowPosition.CENTER;
hdy_window.set_default_size(1200, 700);
hdy_window.add(grid_welcome);
//main_window.set_titlebar(header_bar);
//main_window.add(grid_welcome); //Adds the welcome grid to the window
//hdy_window.add (main_window);
hdy_window.show_all();
//main_window.show_all();
}
public static int main (string[] args) {
return new Application ().run (args);
}
}
Как это выглядит?
Что я пытался сделать?
- Ссылаясь на документацию Vala, больше сосредоточьтесь на документах, связанных с
Hdy.HeaderBar
иHdy.ApplicationWindow
- Понимание того, как
libhandy
был использован способ реализации закругленных углов в элементарной ОС, путем ссылки на —
- За всеми углами в проекте Elementary OS
- Понимание изменений кода в запросах на извлечение, связанных с закруглением углов (реализация LibHandy) в центре приложений Elementary OS, Камере и календаре
С нетерпением ждем возможности опубликовать это приложение с лицензией MIT в центре приложений Elementary. Репозиторий GitHub этого приложения находится по адресу https://github.com/candiedoperation/ordne
Я сделал Электронную Пусковую Установку Для Linux (Например, macOS Spotlight). Несмотря на то, что он электронный, он очень хорошо интегрируется и соответствует элементарным рекомендациям по человеческому интерфейсу ОС. Вы можете узнать больше по адресу https://gitlab.com/candiedoperation/fliger
P.S. AppCenter публикует только собственные приложения, не имея возможности поделиться ими с сообществом элементарных ОС.
Комментарии:
1. Перенесен в элементарную сеть обмена ОС StackExchange по адресу elementaryos.stackexchange.com/questions/28014/…