コード例 #1
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.connect("button-press-event", self.on_button_press)
        self.connect("key-press-event", self.on_key_press)

        self.resize(500, 500)
        self.set_position(Gtk.WindowPosition.CENTER)

        self.area = DrawingArea(500, 500)
        wGrid = Grid(400, 400, 9, 9)
        wGrid.set_cell_color(4, 4, (50, 180, 220))

        self.controller = Controller(wGrid)
        self.change_sudoku('Sudoku 1')

        sugestionGrid = Grid(60, 60, 3, 3, 1, False)
        sugestionGrid.set_position(9 * wGrid.cell_size + 5, 0)
        self.sugest_controller = SugestionController(sugestionGrid,
                                                     self.controller)

        self.area.add_widget(wGrid)
        self.area.add_widget(Grid(400, 400, 3, 3, 4, False))
        #g = Grid(400, 400, 27, 27, 1, False)
        #g.set_position(3,3)
        #self.area.add_widget(g)
        self.area.add_widget(sugestionGrid)

        self.add(self.area)

        self.show_all()
コード例 #2
0
    def __init__(self, main_window, flow_graph, file_path=''):
        """
        Page constructor.

        Args:
            main_window: main window
            file_path: path to a flow graph file
        """
        self._flow_graph = flow_graph
        self.process = None
        #import the file
        self.main_window = main_window
        self.file_path = file_path
        initial_state = flow_graph.get_parent().parse_flow_graph(file_path)
        self.state_cache = StateCache(initial_state)
        self.saved = True
        #import the data to the flow graph
        self.get_flow_graph().import_data(initial_state)
        #initialize page gui
        gtk.HBox.__init__(self, False, 0)
        self.show()
        #tab box to hold label and close button
        self.tab = gtk.HBox(False, 0)
        #setup tab label
        self.label = gtk.Label()
        self.tab.pack_start(self.label, False)
        #setup button image
        image = gtk.Image()
        image.set_from_stock('gtk-close', gtk.ICON_SIZE_MENU)
        #setup image box
        image_box = gtk.HBox(False, 0)
        image_box.pack_start(image, True, False, 0)
        #setup the button
        button = gtk.Button()
        button.connect("clicked", self._handle_button)
        button.set_relief(gtk.RELIEF_NONE)
        button.add(image_box)
        #button size
        w, h = gtk.icon_size_lookup_for_settings(button.get_settings(),
                                                 gtk.ICON_SIZE_MENU)
        button.set_size_request(w + 6, h + 6)
        self.tab.pack_start(button, False)
        self.tab.show_all()
        #setup scroll window and drawing area
        self.scrolled_window = gtk.ScrolledWindow()
        self.scrolled_window.set_size_request(MIN_WINDOW_WIDTH,
                                              MIN_WINDOW_HEIGHT)
        self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC,
                                        gtk.POLICY_AUTOMATIC)
        self.scrolled_window.connect('key-press-event',
                                     self._handle_scroll_window_key_press)
        self.drawing_area = DrawingArea(self.get_flow_graph())
        self.scrolled_window.add_with_viewport(self.get_drawing_area())
        self.pack_start(self.scrolled_window)
        #inject drawing area into flow graph
        self.get_flow_graph().drawing_area = self.get_drawing_area()
        self.show_all()
コード例 #3
0
    def __init__(self, main):

        # set frame to listen to keys.
        Frame.__init__(self, main)
        # make sure we can use self.main.destroy()
        self.main = main

        #Drawing Area
        self.drawing_area = DrawingArea(root,
                                        image_ind=629,
                                        max_image_ind=1074)
        self.main.bind('<Left>', self.drawing_area.prev_image)
        self.main.bind('<a>', self.drawing_area.prev_image)
        self.main.bind('<Right>', self.drawing_area.next_image)
        self.main.bind('<d>', self.drawing_area.next_image)

        self.main.bind("<BackSpace>", self.drawing_area.remove_last_line)
コード例 #4
0
class AppWin(Gtk.ApplicationWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.connect("button-press-event", self.on_button_press)
        self.connect("key-press-event", self.on_key_press)

        self.resize(500, 500)
        self.set_position(Gtk.WindowPosition.CENTER)

        self.area = DrawingArea(500, 500)
        wGrid = Grid(400, 400, 9, 9)
        wGrid.set_cell_color(4, 4, (50, 180, 220))

        self.controller = Controller(wGrid)
        self.change_sudoku('Sudoku 1')

        sugestionGrid = Grid(60, 60, 3, 3, 1, False)
        sugestionGrid.set_position(9 * wGrid.cell_size + 5, 0)
        self.sugest_controller = SugestionController(sugestionGrid,
                                                     self.controller)

        self.area.add_widget(wGrid)
        self.area.add_widget(Grid(400, 400, 3, 3, 4, False))
        #g = Grid(400, 400, 27, 27, 1, False)
        #g.set_position(3,3)
        #self.area.add_widget(g)
        self.area.add_widget(sugestionGrid)

        self.add(self.area)

        self.show_all()

    def change_sudoku(self, name):
        file_name = 'games/s1.txt'
        if name == 'Sudoku 2':
            file_name = 'games/s2.txt'

        sudoku = SudokuFile(file_name).read()
        self.controller.set_sudoku(sudoku)
        self.area.queue_draw()

    def on_button_press(self, w, e):
        self.controller.mouse_event(e)
        self.sugest_controller.mouse_event(e)
        self.area.queue_draw()

    def on_key_press(self, w, e):
        self.controller.keyboard_event(e)
        self.sugest_controller.keyboard_event(e)
        self.area.queue_draw()
コード例 #5
0
ファイル: main.py プロジェクト: BulavkinV/GVD
from os import path

from Point import Point
from DrawingArea import DrawingArea
from JsonParser import JsonParser

JSON_FILENAME = 'input_data.json'

LEFT_BOTTOM = Point(0., 0.)
RIGHT_TOP = Point(50., 30.)

js = JsonParser(path.join('.', 'data', JSON_FILENAME))

da = DrawingArea(js.start, js.finish, js.polygons, LEFT_BOTTOM, RIGHT_TOP)
da.draw()