source: air-manager/trunk/fuentes/air-manager/src/air_manager.py @ 7351

Last change on this file since 7351 was 7351, checked in by Juanma, 17 months ago

Fix paths

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1#! /usr/bin/python3
2
3import gi
4gi.require_version('Gtk', '3.0')
5from gi.repository import Gtk, Pango, GdkPixbuf, Gdk, Gio, GObject,GLib
6import dialog
7
8
9import signal
10import os
11import sys
12import Core
13
14
15signal.signal(signal.SIGINT, signal.SIG_DFL)
16
17
18RSRC="/usr/share/air-manager/rsrc/"
19CSS_FILE=RSRC + "air-manager.css"
20
21
22class AirManagerGui:
23       
24        def __init__(self):
25
26                self.core=Core.Core.get_core()
27               
28
29        #def init
30
31        def load_gui(self):
32               
33                builder=Gtk.Builder()
34                ui_path=RSRC + "air-manager.ui"
35                builder.add_from_file(ui_path)
36               
37                self.main_window=builder.get_object("main_window")
38                self.main_window.set_title("Air Manager")
39                self.main_box=builder.get_object("main_box")
40                self.exit_button=builder.get_object("exit_button")
41               
42                self.install_box=self.core.install_box
43                ev_box=Gtk.EventBox()
44#               ev_box.add(self.install_box.drop)
45                stack=Gtk.Stack()
46                stack.set_transition_duration(1000)
47                stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT)
48                stack.add_titled(self.install_box,"installbox","Install")
49#               stack.add_titled(ev_box,"installbox","Install")
50                stack_switcher=Gtk.StackSwitcher()
51                stack_switcher.set_stack(stack)
52                stack_switcher.props.halign=Gtk.Align.CENTER
53                stack_switcher.set_margin_top(12)
54               
55                # Add components
56                listbox=self.core.manage_box
57                stack.add_titled(listbox,"pkglist","Manage")
58                stack_switcher.connect('button-release-event',self._load_air_list,stack,listbox)
59                       
60                self.set_css_info()
61                self.connect_signals()
62                stack.set_visible_child_name("installbox")
63                self.main_box.add(stack_switcher)
64                self.main_box.add(Gtk.Separator())
65                self.main_box.add(stack)
66                self.main_window.show_all()
67        #def load_gui
68
69        def _load_air_list(self,*args):
70                stack=args[-2]
71                listbox=args[-1]
72                if stack.get_visible_child_name()=='pkglist':
73                        listbox._load_installed_apps()
74                        listbox.show_all()
75
76
77        def set_css_info(self):
78                self.style_provider=Gtk.CssProvider()
79                f=Gio.File.new_for_path(CSS_FILE)
80                self.style_provider.load_from_file(f)
81                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
82                self.main_window.set_name("WINDOW")
83                                               
84        #def set_css_info                                       
85                       
86        def connect_signals(self):
87                self.main_window.connect("destroy",self.quit)
88#               self.exit_button.connect("clicked",self.quit)
89        #def connect_signals
90
91        def quit(self,widget):
92                Gtk.main_quit() 
93        #def quit
94
95        def start_gui(self):
96                GObject.threads_init()
97                Gtk.main()
98        #def start_gui
99
100
101       
102#class LliurexAbiesToPmb
103
104
105if __name__=="__main__":
106       
107        airman=AirManagerGui()
108        airman.start_gui()
109       
Note: See TracBrowser for help on using the repository browser.