fork(1) download
  1. import gtk2, gdk2, glib2, gtksourceview, os, pango
  2.  
  3. type
  4. TGObject* = object of system.TObject
  5. handler*: pointer
  6. TWidget* = object of TGObject
  7. ovisual*: bool
  8. otitle*: string
  9. PWidget* = ptr TWidget
  10. TBox* = object of TWidget
  11. PBox* = ptr TBox
  12. TWindow* = object of TWidget
  13. PWindow* = ptr TWindow
  14. TStatusBar* = object of TWidget
  15. PStatusBar* = ptr TStatusBar
  16. TMenuBar* = object of TWidget
  17. PMenuBar* = ptr TMenuBar
  18. TNotebook* = object of TWidget
  19. PNotebook* = ptr TNotebook
  20. TSourceManager* = object of TGObject
  21. searchPath*: string
  22. PSourceManager* = ptr TSourceManager
  23. TSchemeManager* = object of TGObject
  24. searchPath*: string
  25. PSchemeManager* = ptr TSchemeManager
  26. TSourceView* = object of TWidget
  27. PSourceView* = ptr TSourceView
  28. TSourceBuffer* = object of TGObject
  29. PSourceBuffer* = ptr TSourceBuffer
  30. TMenu* = object of TWidget
  31. PMenu* = ptr TMenu
  32. TMenuItem* = object of TWidget
  33. PMenuItem* = ptr TMenuItem
  34. TSubMenu* = object of TWidget
  35. menu*: pointer
  36. PSubMenu* = ptr TSubMenu
  37. TSeparator* = object of TMenuItem
  38. PSeparator* = ptr TSeparator
  39.  
  40. proc createObject*(T: typedesc[TSubMenu], label: string = ""): PSubMenu =
  41. result = create(T)
  42. result.handler = menuItemNew(label)
  43. result.menu = menuNew()
  44. cast[gtk2.PMenuItem](result.handler).setSubMenu(cast[gtk2.PMenu](result.menu))
  45.  
  46. proc createObject*(T: typedesc[TMenu], label: string = ""): PMenu =
  47. result = create(T)
  48. result.handler = menuBarNew()
  49.  
  50. proc createObject*(T: typedesc[TSeparator], label: string = ""): PSeparator =
  51. result = create(T)
  52. result.handler = separatorMenuItemNew()
  53.  
  54. proc createObject*(T: typedesc[TWindow]): PWindow =
  55. result = create(T)
  56. result.handler = windowNew(gtk2.WINDOW_TOPLEVEL)
  57.  
  58. proc createObject*(T: typedesc[TBox], vertical = false): PBox =
  59. result = create(TBox)
  60. if vertical:
  61. result.handler = vboxNew(gboolean(false), gint(0))
  62. else:
  63. result.handler = hboxNew(gboolean(false), gint(0))
  64.  
  65. proc `visual=`*(w: PWidget, value: bool) =
  66. cast[gtk2.PWidget](w.handler).show()
  67. echo " show"
  68. w.ovisual = true
  69.  
  70. proc `title=`*(w: PWindow, data: string) =
  71. cast[gtk2.PWindow](w.handler).setTitle(data)
  72. w.otitle = data
  73.  
  74. proc add*(m: PMenu, sm: PSubMenu) =
  75. cast[gtk2.PMenuBar](m.handler).append(cast[gtk2.PMenuItem](sm.handler))
  76.  
  77. proc add*(sb: PSubMenu, w: PMenuItem) =
  78. cast[gtk2.PMenu](sb.menu).add(cast[gtk2.PMenuItem](w.handler))
  79.  
  80. proc add*(w: PWindow, wg: PWidget) =
  81. cast[gtk2.PWindow](w.handler).add(cast[gtk2.PWidget](wg.handler))
  82.  
  83. proc `showBorder=`*(w: PWidget, r: bool) =
  84. w.showBorder = r
  85.  
  86. proc maximize*(w: PWindow) =
  87. cast[gtk2.PWindow](w.handler).maximize()
  88.  
  89. #proc init(b: PBox, options: array[TBoxOptions]) =
  90. # b.handler = gtk.vboxNew(false, 0)
  91. proc init*() =
  92. nimrod_init()
  93.  
  94. proc main*() =
  95. gtk2.main()
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.nim(1, 39) Error: cannot open 'gtksourceview'
stdout
Standard output is empty