Ejemplo n.º 1
0
 def init_top_toolbar(self):        
     self.top_toolbar_ali = gtk.Alignment()
     self.top_toolbar_ali.set(0, 0, 0, 0)
     self.top_toolbar_ali.set_padding(0, 0, 5, 0)
     self.top_toolbar = ToolBar()
     self.top_toolbar_ali.add(self.top_toolbar)
     
     
     self.bin_btn = gtk.Button("生成bin")
     self.link_btn = gtk.Button("链接")
     self.run_btn = gtk.Button("运行")        
     self.gcalctool_btn = gtk.Button("计算器")
     
     self.top_toolbar.insert(0, Button("菜单", self.root_menu))
     self.top_toolbar.insert(1, None)
     self.top_toolbar.insert(2, self.bin_btn)
     self.top_toolbar.insert(3, self.link_btn)
     self.top_toolbar.insert(4, self.run_btn)
     self.top_toolbar.insert(5, None)
     self.top_toolbar.insert(6, self.gcalctool_btn)
     
     
     self.bin_btn.connect("clicked", self.bin_btn_clicked)
     self.link_btn.connect("clicked", self.link_btn_clicked)
     self.run_btn.connect("clicked", self.run_btn_clicked)
     self.gcalctool_btn.connect("clicked", self.gcalctool_btn_clicked)
Ejemplo n.º 2
0
    def init_top_toolbar(self):
        self.top_toolbar_ali = gtk.Alignment()
        self.top_toolbar_ali.set(0, 0, 0, 0)
        self.top_toolbar_ali.set_padding(0, 0, 5, 0)
        self.top_toolbar = ToolBar()
        self.top_toolbar_ali.add(self.top_toolbar)

        self.bin_btn = gtk.Button("生成bin")
        self.link_btn = gtk.Button("链接")
        self.run_btn = gtk.Button("运行")
        self.gcalctool_btn = gtk.Button("计算器")

        self.top_toolbar.insert(0, Button("菜单", self.root_menu))
        self.top_toolbar.insert(1, None)
        self.top_toolbar.insert(2, self.bin_btn)
        self.top_toolbar.insert(3, self.link_btn)
        self.top_toolbar.insert(4, self.run_btn)
        self.top_toolbar.insert(5, None)
        self.top_toolbar.insert(6, self.gcalctool_btn)

        self.bin_btn.connect("clicked", self.bin_btn_clicked)
        self.link_btn.connect("clicked", self.link_btn_clicked)
        self.run_btn.connect("clicked", self.run_btn_clicked)
        self.gcalctool_btn.connect("clicked", self.gcalctool_btn_clicked)
Ejemplo n.º 3
0
class AssemblyIDE(object):
    def __init__ (self):            
        self.app = Application()
        # Set app size.
        self.app.set_default_size(APP_WIDTH, APP_HEIGHT)
        self.app.set_icon(app_theme.get_pixbuf("logo.ico"))
        self.app.set_skin_preview(app_theme.get_pixbuf("frame.png"))        
        # Add app titlebar.
        self.app.add_titlebar(["theme", "max", "min", "close"],
                              app_theme.get_pixbuf("logo.png"),
                              "Assembly-IDE v 1.0", " ", add_separator = True)

        self.vbox_ali = gtk.Alignment()
        self.vbox_ali.set(1, 1, 1, 1)
        self.vbox_ali.set_padding(6, 2, 2, 2)
        self.vbox = gtk.VBox()
        self.vbox_ali.add(self.vbox)
        
        self.init_root_menu()
        
        self.init_top_toolbar()
        
        self.code_edit = CodeEdit()
        self.code_edit_file = self.code_edit.file_path
        
        self.complie_show_list = ComplieShowList()
        self.code_edit.connect("codeedit-changed-file-name", self.modify_code_edit_file_name)
        
        self.vbox.pack_start(self.top_toolbar_ali, False, False)
        self.vbox.pack_start(self.code_edit, True,True)
        self.vbox.pack_start(self.complie_show_list, False, False)
        self.app.main_box.pack_start(self.vbox_ali, True, True)
        self.app.window.show_all()
        
    def init_root_menu(self):        
        # Init file menu.
        file_menu = Menu(
            [(None, "新建", lambda : self.code_edit.clear()), # 清空代码编辑器.
             (None, "打开", lambda : self.open_file_dialog_window()),
             (None),
             (None, "我的程序...", None),
             (None),
             (None, "保存", lambda : self.code_edit.save()),
             (None, "另存为", None),
             (None),
             (None, "退出", lambda :gtk.main_quit())
             ]
            )
        # Init edit menu.
        edit_menu = Menu(
            [(None, "剪切", None),
             (None, "复制", None),             
             (None, "粘帖", None),
             (None, "全选", None),
             (None),
             (None, "注释", lambda : self.notes_line()),
             (None, "取消注释", lambda : self.notes_line()),
             (None),
             (None, "撤销", None),
             (None, "恢复", None),
             (None),
             (None, "查找", None),
             (None, "替换", None),
             (None, "定位到行", None)
             ]
            )
        # Init run menu.
        run_menu = Menu(
            [(None, "编译成目标文件", None),
             (None, "生成可执行文件", None),
             (None, "生成动态链接库文件", None),
             (None, "运行", None),
             (None, "多模块链接", None),
             (None, "调试", None),
             (None, "运行LINUX控制台程序", None)
             ]
            )
        # Init tool menu.
        tool_menu = Menu(
            [(None, "选项", None),
             (None, "计算器", lambda :open_gcalctool())
             ]
            )
        # Init help menu.
        help_menu = Menu(
            [(None, "帮助主题", None),
             (None, "关于", None),             
             ]
            )

        # Init root menu.
        self.root_menu = Menu(
            [(None, "文件", file_menu),
             (None, "编辑", edit_menu),
             (None, "运行", run_menu),
             (None, "工具", tool_menu),
             (None, "帮助", help_menu),
             ],
            True
            )
        
    def init_top_toolbar(self):        
        self.top_toolbar_ali = gtk.Alignment()
        self.top_toolbar_ali.set(0, 0, 0, 0)
        self.top_toolbar_ali.set_padding(0, 0, 5, 0)
        self.top_toolbar = ToolBar()
        self.top_toolbar_ali.add(self.top_toolbar)
        
        
        self.bin_btn = gtk.Button("生成bin")
        self.link_btn = gtk.Button("链接")
        self.run_btn = gtk.Button("运行")        
        self.gcalctool_btn = gtk.Button("计算器")
        
        self.top_toolbar.insert(0, Button("菜单", self.root_menu))
        self.top_toolbar.insert(1, None)
        self.top_toolbar.insert(2, self.bin_btn)
        self.top_toolbar.insert(3, self.link_btn)
        self.top_toolbar.insert(4, self.run_btn)
        self.top_toolbar.insert(5, None)
        self.top_toolbar.insert(6, self.gcalctool_btn)
        
        
        self.bin_btn.connect("clicked", self.bin_btn_clicked)
        self.link_btn.connect("clicked", self.link_btn_clicked)
        self.run_btn.connect("clicked", self.run_btn_clicked)
        self.gcalctool_btn.connect("clicked", self.gcalctool_btn_clicked)
        
    def bin_btn_clicked(self, widget):
        pass
    
    def link_btn_clicked(self, widget):
        self.link_function()    
        
    def link_function(self):    
        self.complie_show_list.clear_text()
        self.code_edit.save()
        temp_path = os.path.split(self.code_edit_file)
        link_file_name = os.path.splitext(temp_path[1])[0] + ".o"
        self.link_file_path = os.path.join(temp_path[0], link_file_name) 
        self.complie_show_list.add_text(input_link(self.code_edit_file, self.link_file_path))
        
    def run_btn_clicked(self, widget):
        self.link_function()
        if os.path.exists(self.link_file_path):
            temp_path = os.path.split(self.link_file_path)
            run_file_name = os.path.splitext(temp_path[1])[0] + ".out"
            self.run_file_path = os.path.join(temp_path[0], run_file_name) 
            print "run_btn_clicked:", self.run_file_path
            run_bool = input_elf(self.link_file_path, self.run_file_path)
            if run_bool == "True":
                self.complie_show_list.add_text("编译完成!!")
                self.complie_show_list.add_text(run_elf(self.run_file_path))
            else:    
                print run_bool
        
    def gcalctool_btn_clicked(self, widget):
        open_gcalctool()
        
    def open_file_dialog_window(self):    
        open_file_path = show_open_file_dialog_window()
        if open_file_path:
            self.code_edit.read(open_file_path)
            
    def notes_line(self):        
        self.code_edit.cursor_start_insert_ch()
        
    def modify_code_edit_file_name(self, CodeEdit, file_name):    
        self.code_edit_file = file_name
Ejemplo n.º 4
0
class AssemblyIDE(object):
    def __init__(self):
        self.app = Application()
        # Set app size.
        self.app.set_default_size(APP_WIDTH, APP_HEIGHT)
        self.app.set_icon(app_theme.get_pixbuf("logo.ico"))
        self.app.set_skin_preview(app_theme.get_pixbuf("frame.png"))
        # Add app titlebar.
        self.app.add_titlebar(["theme", "max", "min", "close"],
                              app_theme.get_pixbuf("logo.png"),
                              "Assembly-IDE v 1.0",
                              " ",
                              add_separator=True)

        self.vbox_ali = gtk.Alignment()
        self.vbox_ali.set(1, 1, 1, 1)
        self.vbox_ali.set_padding(6, 2, 2, 2)
        self.vbox = gtk.VBox()
        self.vbox_ali.add(self.vbox)

        self.init_root_menu()

        self.init_top_toolbar()

        self.code_edit = CodeEdit()
        self.code_edit_file = self.code_edit.file_path

        self.complie_show_list = ComplieShowList()
        self.code_edit.connect("codeedit-changed-file-name",
                               self.modify_code_edit_file_name)

        self.vbox.pack_start(self.top_toolbar_ali, False, False)
        self.vbox.pack_start(self.code_edit, True, True)
        self.vbox.pack_start(self.complie_show_list, False, False)
        self.app.main_box.pack_start(self.vbox_ali, True, True)
        self.app.window.show_all()

    def init_root_menu(self):
        # Init file menu.
        file_menu = Menu([
            (None, "新建", lambda: self.code_edit.clear()),  # 清空代码编辑器.
            (None, "打开", lambda: self.open_file_dialog_window()),
            (None),
            (None, "我的程序...", None),
            (None),
            (None, "保存", lambda: self.code_edit.save()),
            (None, "另存为", None),
            (None),
            (None, "退出", lambda: gtk.main_quit())
        ])
        # Init edit menu.
        edit_menu = Menu([(None, "剪切", None), (None, "复制", None),
                          (None, "粘帖", None), (None, "全选", None), (None),
                          (None, "注释", lambda: self.notes_line()),
                          (None, "取消注释", lambda: self.notes_line()), (None),
                          (None, "撤销", None), (None, "恢复", None), (None),
                          (None, "查找", None), (None, "替换", None),
                          (None, "定位到行", None)])
        # Init run menu.
        run_menu = Menu([(None, "编译成目标文件", None), (None, "生成可执行文件", None),
                         (None, "生成动态链接库文件", None), (None, "运行", None),
                         (None, "多模块链接", None), (None, "调试", None),
                         (None, "运行LINUX控制台程序", None)])
        # Init tool menu.
        tool_menu = Menu([(None, "选项", None),
                          (None, "计算器", lambda: open_gcalctool())])
        # Init help menu.
        help_menu = Menu([
            (None, "帮助主题", None),
            (None, "关于", None),
        ])

        # Init root menu.
        self.root_menu = Menu([
            (None, "文件", file_menu),
            (None, "编辑", edit_menu),
            (None, "运行", run_menu),
            (None, "工具", tool_menu),
            (None, "帮助", help_menu),
        ], True)

    def init_top_toolbar(self):
        self.top_toolbar_ali = gtk.Alignment()
        self.top_toolbar_ali.set(0, 0, 0, 0)
        self.top_toolbar_ali.set_padding(0, 0, 5, 0)
        self.top_toolbar = ToolBar()
        self.top_toolbar_ali.add(self.top_toolbar)

        self.bin_btn = gtk.Button("生成bin")
        self.link_btn = gtk.Button("链接")
        self.run_btn = gtk.Button("运行")
        self.gcalctool_btn = gtk.Button("计算器")

        self.top_toolbar.insert(0, Button("菜单", self.root_menu))
        self.top_toolbar.insert(1, None)
        self.top_toolbar.insert(2, self.bin_btn)
        self.top_toolbar.insert(3, self.link_btn)
        self.top_toolbar.insert(4, self.run_btn)
        self.top_toolbar.insert(5, None)
        self.top_toolbar.insert(6, self.gcalctool_btn)

        self.bin_btn.connect("clicked", self.bin_btn_clicked)
        self.link_btn.connect("clicked", self.link_btn_clicked)
        self.run_btn.connect("clicked", self.run_btn_clicked)
        self.gcalctool_btn.connect("clicked", self.gcalctool_btn_clicked)

    def bin_btn_clicked(self, widget):
        pass

    def link_btn_clicked(self, widget):
        self.link_function()

    def link_function(self):
        self.complie_show_list.clear_text()
        self.code_edit.save()
        temp_path = os.path.split(self.code_edit_file)
        link_file_name = os.path.splitext(temp_path[1])[0] + ".o"
        self.link_file_path = os.path.join(temp_path[0], link_file_name)
        self.complie_show_list.add_text(
            input_link(self.code_edit_file, self.link_file_path))

    def run_btn_clicked(self, widget):
        self.link_function()
        if os.path.exists(self.link_file_path):
            temp_path = os.path.split(self.link_file_path)
            run_file_name = os.path.splitext(temp_path[1])[0] + ".out"
            self.run_file_path = os.path.join(temp_path[0], run_file_name)
            print "run_btn_clicked:", self.run_file_path
            run_bool = input_elf(self.link_file_path, self.run_file_path)
            if run_bool == "True":
                self.complie_show_list.add_text("编译完成!!")
                self.complie_show_list.add_text(run_elf(self.run_file_path))
            else:
                print run_bool

    def gcalctool_btn_clicked(self, widget):
        open_gcalctool()

    def open_file_dialog_window(self):
        open_file_path = show_open_file_dialog_window()
        if open_file_path:
            self.code_edit.read(open_file_path)

    def notes_line(self):
        self.code_edit.cursor_start_insert_ch()

    def modify_code_edit_file_name(self, CodeEdit, file_name):
        self.code_edit_file = file_name
Ejemplo n.º 5
0
    def __init__(self):
        '''application.'''
        self.__init_values()
        self.app = Application(False)
        # application set.
        app_w, app_h = 800, 570  # 初始化宽,高.
        min_app_w, min_app_h = 480, 300  # 防止超过,界面布局被破坏.
        self.app.set_default_size(min_app_w, min_app_h)
        self.app.window.set_default_size(app_w, app_h)
        # self.app.window.resize
        image_dir = os.path.join(get_parent_dir(__file__, 2), "image")
        self.app.set_icon(os.path.join(image_dir, "icon.ico"))
        self.app.set_skin_preview(
            os.path.join(os.path.join(image_dir, "frame.png")))
        # set titlebar.
        self.app.add_titlebar(
            ["theme", "menu", "max", "min", "close"],
            os.path.join(os.path.join(image_dir, "logo.png")),
            _("DPlayer"),
            " ",
            add_separator=False,
        )
        self.app.titlebar.set_size_request(-1, 30)

        #
        self.play_menus = PlayMenus()
        # 设置主题菜单.
        self.app.set_menu_callback(
            lambda button: self.play_menus.show_theme_menu(button))
        #
        self.main_ali = gtk.Alignment()
        self.main_vbox = gtk.VBox()
        self.main_ali.add(self.main_vbox)
        self.main_ali.set(0, 0, 1.0, 1.0)
        self.main_ali.set_padding(0, 2, 2, 2)
        #
        self.mid_combo_event = gtk.EventBox()
        self.mid_combo_event.connect("expose-event",
                                     self.mid_combo_event_expose_event)
        self.screen_mid_combo = ScreenMidCombo()
        self.mid_combo_event.set_visible_window(True)
        self.mid_combo_event.add(self.screen_mid_combo)
        '''movie screen. 电影播放屏幕.'''
        # 播放屏幕和播放列表的HBOX.
        self.play_list_view = PlayListView()
        self.screen_paned = Paned()
        self.screen_paned.paint_bottom_window = self.__paint_bottom_toolbar_background
        self.screen_frame = gtk.Alignment(0.0, 0.0, 1.0, 1.0)
        self.screen = gtk.DrawingArea()
        self.screen_frame.add(self.screen)
        self.top_toolbar = ToolBar()
        self.bottom_toolbar = BottomToolBar()
        # BUG: 当显示上部工具条的时候,画面抖动.
        self.screen_paned.add_top_widget(self.top_toolbar.hbox_hframe)
        self.screen_paned.add_bottom_widget(self.bottom_toolbar.vbox)
        #self.screen_paned.add_mid_widget(self.screen_mid_combo)
        self.screen_paned.add_mid_widget(self.mid_combo_event)
        #
        self.screen_frame_event = self.screen_paned
        self.screen_paned.screen = self.screen
        #
        self.screen_paned.add1(self.screen_frame)
        self.screen_paned.add2(self.play_list_view.play_list_vbox)
        #
        self.play_control_panel = BottomToolBar(False)
        #
        self.main_vbox.pack_start(self.screen_paned, True, True)
        self.main_vbox.pack_start(self.play_control_panel.vbox, False, False)
        #
        self.app.main_box.pack_start(self.main_ali, True, True)