--- /dev/null
+#!/usr/bin/env python\r
+# coding: utf-8\r
+\r
+import sys\r
+import tkinter\r
+import tkinter.filedialog\r
+import togl\r
+import opengl\r
+import opengl.rokuro\r
+import triangle\r
+\r
+\r
+class Frame(tkinter.Frame):\r
+ def __init__(self, width, height, master=None, **kw):\r
+ super(Frame, self).__init__(master, **kw)\r
+ self.master.title('pymeshio viewer')\r
+ self.current='.'\r
+ # setup menu\r
+ menu_bar = tkinter.Menu(self)\r
+ self.master.config(menu=menu_bar)\r
+\r
+ menu_file = tkinter.Menu(menu_bar, tearoff=False)\r
+ menu_bar.add_cascade(label='FILE', menu=menu_file, underline=0)\r
+\r
+ menu_file.add_command(label='Open', under=0, command=self.onOpen)\r
+\r
+ # setup opengl widget\r
+ self.glworld=opengl.BaseController(opengl.rokuro.RokuroView(25), triangle.Triangle(5))\r
+ glwidget=togl.Widget(self, self.glworld, width=width, height=height)\r
+ glwidget.pack(fill=tkinter.BOTH, expand=True)\r
+\r
+ # event binding\r
+ self.bind('<Key>', self.onKeyDown)\r
+ self.bind('<MouseWheel>', lambda e: self.glworld.onWheel(-e.delta) and glwidget.onDraw())\r
+\r
+ def onOpen(self):\r
+ filename=tkinter.filedialog.askopenfilename(\r
+ filetypes=[\r
+ ('poloygon model files', '*.mqo;*.pmd'),\r
+ ], \r
+ initialdir=self.current)\r
+ print('open: %s' % filename)\r
+\r
+ def onKeyDown(self, event):\r
+ key=event.keycode\r
+ if key==27:\r
+ # Escape\r
+ sys.exit()\r
+ if key==81:\r
+ # q\r
+ sys.exit()\r
+ else:\r
+ print("keycode: %d" % key)\r
+\r
+\r
+if __name__ == '__main__':\r
+ f = Frame(width=600, height=600)\r
+ f.pack(fill=tkinter.BOTH, expand=True)\r
+ f.focus_set()\r
+ f.mainloop()\r
+\r