Browse Source

init browser actions, add menu items

master
yggverse 2 months ago
parent
commit
1c1907741d
  1. 58
      src/app/browser.rs
  2. 19
      src/app/browser/header.rs
  3. 17
      src/app/browser/header/subject.rs
  4. 17
      src/app/browser/header/tray.rs
  5. 23
      src/app/browser/header/tray/menu.rs

58
src/app/browser.rs

@ -1,7 +1,15 @@
#[path = "browser/header.rs"] mod header; #[path = "browser/header.rs"] mod header;
#[path = "browser/main.rs"] mod main; #[path = "browser/main.rs"] mod main;
use gtk::{Application, ApplicationWindow}; use gtk::{
Application,
ApplicationWindow,
gio::ActionEntry,
prelude::{
ActionMapExtManual,
GtkWindowExt
}
};
pub fn new( pub fn new(
app: &Application, app: &Application,
@ -9,12 +17,8 @@ pub fn new(
height: i32 height: i32
) -> ApplicationWindow ) -> ApplicationWindow
{ {
return ApplicationWindow::builder() // Init browser window
let browser = ApplicationWindow::builder()
// Relate
.application(
app
)
// Tuneup // Tuneup
.default_width( .default_width(
@ -25,6 +29,11 @@ pub fn new(
height height
) )
// Relate
.application(
app
)
// Init components // Init components
.titlebar( .titlebar(
&header::new() &header::new()
@ -36,4 +45,39 @@ pub fn new(
// Make // Make
.build(); .build();
// Init actions
let action_debug = ActionEntry::builder("debug")
.activate(
|browser: &ApplicationWindow, _, _|
{
browser.emit_enable_debugging(
true
);
}
)
.build();
let action_quit = ActionEntry::builder("quit")
.activate(
|browser: &ApplicationWindow, _, _|
{
browser.close();
}
)
.build();
browser.add_action_entries(
[
action_debug,
action_quit
]
);
// Done
browser
} }

19
src/app/browser/header.rs

@ -7,16 +7,15 @@ pub fn new() -> HeaderBar
{ {
let header = HeaderBar::builder().build(); let header = HeaderBar::builder().build();
// Compose childs header.pack_start(
header.pack_start( &tray::new()
&tray::new() );
);
header.set_title_widget( header.set_title_widget(
Some( Some(
&subject::new() &subject::new()
) )
); );
return header; header
} }

17
src/app/browser/header/subject.rs

@ -19,14 +19,15 @@ pub fn new() -> Box
.build(); .build();
// Compose childs // Compose childs
subject.append( subject.append(
&title::new() &title::new()
); );
subject.append( subject.append(
&description::new() &description::new()
); );
return subject; // Done
subject
} }

17
src/app/browser/header/tray.rs

@ -15,16 +15,17 @@ pub fn new() -> Box
.spacing(8) .spacing(8)
// Make
.build(); .build();
// Compose childs // Compose childs
tray.append( tray.append(
&menu::new() &menu::new()
); );
tray.append( tray.append(
&tab::new() &tab::new()
); );
return tray; tray
} }

23
src/app/browser/header/tray/menu.rs

@ -1,4 +1,7 @@
use gtk::MenuButton; use gtk::{
gio,
MenuButton
};
pub fn new() -> MenuButton pub fn new() -> MenuButton
{ {
@ -10,5 +13,21 @@ pub fn new() -> MenuButton
.build(); .build();
return menu; let model = gio::Menu::new();
model.append(
Some("Debug"),
Some("win.debug")
);
model.append(
Some("Quit"),
Some("win.quit")
);
menu.set_menu_model(
Some(&model)
);
menu
} }
Loading…
Cancel
Save