+ case "${usergroup_phase}" in
+ local run_cmd
+ run_cmd=run_su
+ shift
+ run_su /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/bsnes-115nb22/work.log
+ su pbulk -c '"$@"' make /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/bsnes-115nb22/work.log
=> Bootstrap dependency digest>=20211023: found digest-20220214
===> Building for bsnes-115nb22
Compiling ../hiro/hiro.cpp ...
In file included from ../hiro/core/core.cpp:1,
                 from ../hiro/hiro.cpp:5:
../nall/intrinsics.hpp:109:4: warning: #warning "unable to detect platform" [-Wcpp]
  109 |   #warning "unable to detect platform"
      |    ^~~~~~~
In file included from ../nall/arithmetic.hpp:37,
                 from ../nall/hash/hash.hpp:3,
                 from ../nall/hash/sha256.hpp:3,
                 from ../nall/file-buffer.hpp:12,
                 from ../nall/file.hpp:3,
                 from ../nall/directory.hpp:3,
                 from ../hiro/core/core.hpp:4,
                 from ../hiro/core/core.cpp:13:
../nall/arithmetic/natural.hpp: In function 'void nall::div(const uint256_t&, const uint256_t&, uint256_t&, uint256_t&)':
../nall/arithmetic/natural.hpp:239:23: error: 'runtime_error' is not a member of 'std'
  239 |   if(!rhs) throw std::runtime_error("division by zero");
      |                       ^~~~~~~~~~~~~
../nall/arithmetic/natural.hpp:1:1: note: 'std::runtime_error' is defined in header '<stdexcept>'; did you forget to '#include <stdexcept>'?
  +++ |+#include <stdexcept>
    1 | #define ConcatenateType(Size) uint##Size##_t
In file included from ../nall/arithmetic.hpp:45:
../nall/arithmetic/natural.hpp: In function 'void nall::div(const uint512_t&, const uint512_t&, uint512_t&, uint512_t&)':
../nall/arithmetic/natural.hpp:239:23: error: 'runtime_error' is not a member of 'std'
  239 |   if(!rhs) throw std::runtime_error("division by zero");
      |                       ^~~~~~~~~~~~~
../nall/arithmetic/natural.hpp:239:23: note: 'std::runtime_error' is defined in header '<stdexcept>'; did you forget to '#include <stdexcept>'?
In file included from ../nall/arithmetic.hpp:53:
../nall/arithmetic/natural.hpp: In function 'void nall::div(const uint1024_t&, const uint1024_t&, uint1024_t&, uint1024_t&)':
../nall/arithmetic/natural.hpp:239:23: error: 'runtime_error' is not a member of 'std'
  239 |   if(!rhs) throw std::runtime_error("division by zero");
      |                       ^~~~~~~~~~~~~
../nall/arithmetic/natural.hpp:239:23: note: 'std::runtime_error' is defined in header '<stdexcept>'; did you forget to '#include <stdexcept>'?
In file included from ../nall/arithmetic.hpp:61:
../nall/arithmetic/natural.hpp: In function 'void nall::div(const uint2048_t&, const uint2048_t&, uint2048_t&, uint2048_t&)':
../nall/arithmetic/natural.hpp:239:23: error: 'runtime_error' is not a member of 'std'
  239 |   if(!rhs) throw std::runtime_error("division by zero");
      |                       ^~~~~~~~~~~~~
../nall/arithmetic/natural.hpp:239:23: note: 'std::runtime_error' is defined in header '<stdexcept>'; did you forget to '#include <stdexcept>'?
In file included from ../nall/arithmetic.hpp:69:
../nall/arithmetic/natural.hpp: In function 'void nall::div(const uint4096_t&, const uint4096_t&, uint4096_t&, uint4096_t&)':
../nall/arithmetic/natural.hpp:239:23: error: 'runtime_error' is not a member of 'std'
  239 |   if(!rhs) throw std::runtime_error("division by zero");
      |                       ^~~~~~~~~~~~~
../nall/arithmetic/natural.hpp:239:23: note: 'std::runtime_error' is defined in header '<stdexcept>'; did you forget to '#include <stdexcept>'?
In file included from ../nall/arithmetic.hpp:77:
../nall/arithmetic/natural.hpp: In function 'void nall::div(const uint8192_t&, const uint8192_t&, uint8192_t&, uint8192_t&)':
../nall/arithmetic/natural.hpp:239:23: error: 'runtime_error' is not a member of 'std'
  239 |   if(!rhs) throw std::runtime_error("division by zero");
      |                       ^~~~~~~~~~~~~
../nall/arithmetic/natural.hpp:239:23: note: 'std::runtime_error' is defined in header '<stdexcept>'; did you forget to '#include <stdexcept>'?
../nall/file.hpp: In static member function 'static bool nall::file::truncate(const nall::string&, uint64_t)':
../nall/file.hpp:49:3: warning: no return statement in function returning non-void [-Wreturn-type]
   49 |   }
      |   ^
../nall/file.hpp: In static member function 'static bool nall::file::exists(const nall::string&)':
../nall/file.hpp:60:14: error: 'data' was not declared in this scope
   60 |     return !(data.st_mode & S_IFDIR);
      |              ^~~~
In file included from /usr/include/fcntl.h:37,
                 from ../nall/platform.hpp:41,
                 from ../hiro/core/core.hpp:1:
../nall/file.hpp: In static member function 'static uint64_t nall::file::size(const nall::string&)':
../nall/file.hpp:71:20: error: 'data' was not declared in this scope
   71 |     return S_ISREG(data.st_mode) ? data.st_size : 0u;
      |                    ^~~~
../nall/directory.hpp: In function 'bool nall::directoryIsFolder(DIR*, dirent*)':
../nall/directory.hpp:270:12: error: 'struct dirent' has no member named 'd_type'
  270 |     if(ep->d_type == DT_DIR) return true;
      |            ^~~~~~
../nall/directory.hpp:270:22: error: 'DT_DIR' was not declared in this scope
  270 |     if(ep->d_type == DT_DIR) return true;
      |                      ^~~~~~
../nall/directory.hpp:271:12: error: 'struct dirent' has no member named 'd_type'
  271 |     if(ep->d_type == DT_LNK || ep->d_type == DT_UNKNOWN) {
      |            ^~~~~~
../nall/directory.hpp:271:22: error: 'DT_LNK' was not declared in this scope
  271 |     if(ep->d_type == DT_LNK || ep->d_type == DT_UNKNOWN) {
      |                      ^~~~~~
../nall/directory.hpp:271:36: error: 'struct dirent' has no member named 'd_type'
  271 |     if(ep->d_type == DT_LNK || ep->d_type == DT_UNKNOWN) {
      |                                    ^~~~~~
../nall/directory.hpp:271:46: error: 'DT_UNKNOWN' was not declared in this scope; did you mean 'API_UNKNOWN'?
  271 |     if(ep->d_type == DT_LNK || ep->d_type == DT_UNKNOWN) {
      |                                              ^~~~~~~~~~
      |                                              API_UNKNOWN
In file included from ../hiro/core/../gtk/platform.hpp:8,
                 from ../hiro/core/../gtk/platform.cpp:1,
                 from ../hiro/core/core.cpp:21:
../hiro/core/../gtk/font.hpp: At global scope:
../hiro/core/../gtk/font.hpp:7:20: error: 'PangoFontDescription' has not been declared
    7 |   static auto size(PangoFontDescription* font, const string& text) -> Size;
      |                    ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.hpp:9:43: error: 'PangoFontDescription' does not name a type
    9 |   static auto create(const Font& font) -> PangoFontDescription*;
      |                                           ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.hpp:9:43: error: expected ';' at end of member declaration
    9 |   static auto create(const Font& font) -> PangoFontDescription*;
      |                                           ^~~~~~~~~~~~~~~~~~~~
      |                                                               ;
../hiro/core/../gtk/font.hpp:9:64: error: expected unqualified-id before ';' token
    9 |   static auto create(const Font& font) -> PangoFontDescription*;
      |                                                                ^
../hiro/core/../gtk/font.hpp:10:20: error: 'PangoFontDescription' has not been declared
   10 |   static auto free(PangoFontDescription* font) -> void;
      |                    ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.hpp:11:23: error: 'GtkWidget' has not been declared
   11 |   static auto setFont(GtkWidget* widget, const Font& font) -> void;
      |                       ^~~~~~~~~
../hiro/core/../gtk/font.hpp:12:23: error: 'GtkWidget' has not been declared
   12 |   static auto setFont(GtkWidget* widget, gpointer font) -> void;
      |                       ^~~~~~~~~
../hiro/core/../gtk/font.hpp:12:42: error: 'gpointer' has not been declared
   12 |   static auto setFont(GtkWidget* widget, gpointer font) -> void;
      |                                          ^~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:20:
../hiro/core/../gtk/window.hpp:52:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   52 |   GtkWidget* widget = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/window.hpp:53:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   53 |   GtkWidget* menuContainer = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/window.hpp:54:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   54 |   GtkWidget* formContainer = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/window.hpp:55:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   55 |   GtkWidget* statusContainer = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/window.hpp:56:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   56 |   GtkWidget* gtkMenu = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/window.hpp:57:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   57 |   GtkWidget* gtkStatus = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/window.hpp:58:3: error: 'GtkAllocation' does not name a type
   58 |   GtkAllocation lastMove = {0};
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/window.hpp:59:3: error: 'GtkAllocation' does not name a type
   59 |   GtkAllocation lastSize = {0};
      |   ^~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:23:
../hiro/core/../gtk/popup-menu.hpp:13:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   13 |   GtkWidget* gtkMenu = nullptr;
      |   ^~~~~~~~~
      |   wWidget
In file included from ../hiro/core/../gtk/platform.hpp:25:
../hiro/core/../gtk/action/action.hpp:14:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   14 |   GtkWidget* widget = nullptr;
      |   ^~~~~~~~~
      |   wWidget
In file included from ../hiro/core/../gtk/platform.hpp:26:
../hiro/core/../gtk/action/menu.hpp:14:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   14 |   GtkWidget* gtkMenu = nullptr;
      |   ^~~~~~~~~
      |   wWidget
In file included from ../hiro/core/../gtk/platform.hpp:30:
../hiro/core/../gtk/action/menu-radio-item.hpp:16:3: error: 'GtkCheckMenuItem' does not name a type
   16 |   GtkCheckMenuItem* gtkCheckMenuItem = nullptr;
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.hpp:17:3: error: 'GtkRadioMenuItem' does not name a type
   17 |   GtkRadioMenuItem* gtkRadioMenuItem = nullptr;
      |   ^~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:34:
../hiro/core/../gtk/widget/widget.hpp:8:46: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
    8 |   virtual auto container(mWidget& widget) -> GtkWidget*;
      |                                              ^~~~~~~~~
      |                                              pWidget
../hiro/core/../gtk/widget/widget.hpp:8:46: error: expected ';' at end of member declaration
    8 |   virtual auto container(mWidget& widget) -> GtkWidget*;
      |                                              ^~~~~~~~~
      |                                                       ;
../hiro/core/../gtk/widget/widget.hpp:8:56: error: expected unqualified-id before ';' token
    8 |   virtual auto container(mWidget& widget) -> GtkWidget*;
      |                                                        ^
../hiro/core/../gtk/widget/widget.hpp:20:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   20 |   GtkWidget* gtkWidget = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/widget.hpp:21:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   21 |   GtkWidget* gtkParent = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/widget.hpp:22:3: error: 'GdkCursor' does not name a type
   22 |   GdkCursor* gdkMouseCursor = nullptr;
      |   ^~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:35:
../hiro/core/../gtk/widget/button.hpp:16:3: error: 'GtkButton' does not name a type; did you mean 'pButton'?
   16 |   GtkButton* gtkButton = nullptr;
      |   ^~~~~~~~~
      |   pButton
In file included from ../hiro/core/../gtk/platform.hpp:36:
../hiro/core/../gtk/widget/canvas.hpp:18:16: error: 'cairo_t' has not been declared
   18 |   auto _onDraw(cairo_t* context) -> void;
      |                ^~~~~~~
../hiro/core/../gtk/widget/canvas.hpp:19:18: error: 'GdkEventExpose' has not been declared
   19 |   auto _onExpose(GdkEventExpose* event) -> void;
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.hpp:24:3: error: 'GdkPixbuf' does not name a type
   24 |   GdkPixbuf* surface = nullptr;
      |   ^~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:39:
../hiro/core/../gtk/widget/combo-button.hpp:17:3: error: 'GtkListStore' does not name a type
   17 |   GtkListStore* gtkListStore = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.hpp:18:3: error: 'GtkTreeModel' does not name a type
   18 |   GtkTreeModel* gtkTreeModel = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.hpp:19:3: error: 'GtkComboBox' does not name a type
   19 |   GtkComboBox* gtkComboBox = nullptr;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.hpp:20:3: error: 'GtkCellRenderer' does not name a type
   20 |   GtkCellRenderer* gtkCellIcon = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.hpp:21:3: error: 'GtkCellRenderer' does not name a type
   21 |   GtkCellRenderer* gtkCellText = nullptr;
      |   ^~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:40:
../hiro/core/../gtk/widget/combo-button-item.hpp:14:3: error: 'GtkTreeIter' does not name a type
   14 |   GtkTreeIter gtkIter;
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:41:
../hiro/core/../gtk/widget/combo-edit.hpp:20:3: error: 'GtkListStore' does not name a type
   20 |   GtkListStore* gtkListStore = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.hpp:21:3: error: 'GtkTreeModel' does not name a type
   21 |   GtkTreeModel* gtkTreeModel = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.hpp:22:3: error: 'GtkComboBox' does not name a type
   22 |   GtkComboBox* gtkComboBox = nullptr;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.hpp:23:3: error: 'GtkCellRenderer' does not name a type
   23 |   GtkCellRenderer* gtkCellIcon = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.hpp:24:3: error: 'GtkCellRenderer' does not name a type
   24 |   GtkCellRenderer* gtkCellText = nullptr;
      |   ^~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:42:
../hiro/core/../gtk/widget/combo-edit-item.hpp:13:3: error: 'GtkTreeIter' does not name a type
   13 |   GtkTreeIter gtkIter;
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:43:
../hiro/core/../gtk/widget/console.hpp:18:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   18 |   GtkWidget* subWidget = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/console.hpp:19:3: error: 'GtkTextBuffer' does not name a type
   19 |   GtkTextBuffer* textBuffer = nullptr;
      |   ^~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:44:
../hiro/core/../gtk/widget/frame.hpp:9:38: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
    9 |   auto container(mWidget& widget) -> GtkWidget* override;
      |                                      ^~~~~~~~~
      |                                      pWidget
../hiro/core/../gtk/widget/frame.hpp:9:38: error: expected ';' at end of member declaration
    9 |   auto container(mWidget& widget) -> GtkWidget* override;
      |                                      ^~~~~~~~~
      |                                               ;
../hiro/core/../gtk/widget/frame.hpp:9:49: error: ISO C++ forbids declaration of 'override' with no type [-fpermissive]
    9 |   auto container(mWidget& widget) -> GtkWidget* override;
      |                                                 ^~~~~~~~
../hiro/core/../gtk/widget/frame.hpp:19:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   19 |   GtkWidget* gtkLabel = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/frame.hpp:20:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   20 |   GtkWidget* gtkChild = nullptr;
      |   ^~~~~~~~~
      |   pWidget
In file included from ../hiro/core/../gtk/platform.hpp:45:
../hiro/core/../gtk/widget/hex-edit.hpp:26:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   26 |   GtkWidget* container = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/hex-edit.hpp:27:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   27 |   GtkWidget* subWidget = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/hex-edit.hpp:28:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   28 |   GtkWidget* scrollBar = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/hex-edit.hpp:29:3: error: 'GtkTextBuffer' does not name a type
   29 |   GtkTextBuffer* textBuffer = nullptr;
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.hpp:30:3: error: 'GtkTextMark' does not name a type
   30 |   GtkTextMark* textCursor = nullptr;
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:48:
../hiro/core/../gtk/widget/icon-view.hpp:26:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   26 |   GtkWidget* subWidget = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/icon-view.hpp:27:3: error: 'GtkListStore' does not name a type
   27 |   GtkListStore* store = nullptr;
      |   ^~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:50:
../hiro/core/../gtk/widget/label.hpp:15:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   15 |   GtkWidget* subWidget = nullptr;
      |   ^~~~~~~~~
      |   pWidget
In file included from ../hiro/core/../gtk/platform.hpp:54:
../hiro/core/../gtk/widget/radio-label.hpp:15:3: error: 'GtkToggleButton' does not name a type
   15 |   GtkToggleButton* gtkToggleButton = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.hpp:16:3: error: 'GtkRadioButton' does not name a type; did you mean 'wRadioButton'?
   16 |   GtkRadioButton* gtkRadioButton = nullptr;
      |   ^~~~~~~~~~~~~~
      |   wRadioButton
In file included from ../hiro/core/../gtk/platform.hpp:55:
../hiro/core/../gtk/widget/source-edit.hpp:19:3: error: 'GtkScrolledWindow' does not name a type
   19 |   GtkScrolledWindow* gtkScrolledWindow = nullptr;
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:20:3: error: 'GtkContainer' does not name a type
   20 |   GtkContainer* gtkContainer = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:21:3: error: 'GtkSourceBuffer' does not name a type
   21 |   GtkSourceBuffer* gtkSourceBuffer = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:22:3: error: 'GtkTextBuffer' does not name a type
   22 |   GtkTextBuffer* gtkTextBuffer = nullptr;
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:23:3: error: 'GtkSourceLanguageManager' does not name a type
   23 |   GtkSourceLanguageManager* gtkSourceLanguageManager = nullptr;
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:24:3: error: 'GtkSourceLanguage' does not name a type
   24 |   GtkSourceLanguage* gtkSourceLanguage = nullptr;
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:25:3: error: 'GtkSourceStyleSchemeManager' does not name a type
   25 |   GtkSourceStyleSchemeManager* gtkSourceStyleSchemeManager = nullptr;
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:26:3: error: 'GtkSourceStyleScheme' does not name a type
   26 |   GtkSourceStyleScheme* gtkSourceStyleScheme = nullptr;
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:27:3: error: 'GtkSourceView' does not name a type
   27 |   GtkSourceView* gtkSourceView = nullptr;
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:28:3: error: 'GtkTextView' does not name a type
   28 |   GtkTextView* gtkTextView = nullptr;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.hpp:29:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   29 |   GtkWidget* gtkWidgetSourceView = nullptr;
      |   ^~~~~~~~~
      |   pWidget
In file included from ../hiro/core/../gtk/platform.hpp:56:
../hiro/core/../gtk/widget/tab-frame.hpp:9:38: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
    9 |   auto container(mWidget& widget) -> GtkWidget* override;
      |                                      ^~~~~~~~~
      |                                      pWidget
../hiro/core/../gtk/widget/tab-frame.hpp:9:38: error: expected ';' at end of member declaration
    9 |   auto container(mWidget& widget) -> GtkWidget* override;
      |                                      ^~~~~~~~~
      |                                               ;
../hiro/core/../gtk/widget/tab-frame.hpp:9:49: error: ISO C++ forbids declaration of 'override' with no type [-fpermissive]
    9 |   auto container(mWidget& widget) -> GtkWidget* override;
      |                                                 ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.hpp:28:5: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   28 |     GtkWidget* child = nullptr;
      |     ^~~~~~~~~
      |     pWidget
../hiro/core/../gtk/widget/tab-frame.hpp:29:5: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   29 |     GtkWidget* container = nullptr;
      |     ^~~~~~~~~
      |     pWidget
../hiro/core/../gtk/widget/tab-frame.hpp:30:5: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   30 |     GtkWidget* layout = nullptr;
      |     ^~~~~~~~~
      |     pWidget
../hiro/core/../gtk/widget/tab-frame.hpp:31:5: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   31 |     GtkWidget* image = nullptr;
      |     ^~~~~~~~~
      |     pWidget
../hiro/core/../gtk/widget/tab-frame.hpp:32:5: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   32 |     GtkWidget* title = nullptr;
      |     ^~~~~~~~~
      |     pWidget
../hiro/core/../gtk/widget/tab-frame.hpp:33:5: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   33 |     GtkWidget* close = nullptr;
      |     ^~~~~~~~~
      |     pWidget
In file included from ../hiro/core/../gtk/platform.hpp:58:
../hiro/core/../gtk/widget/table-view.hpp:28:20: error: 'GtkTreePath' has not been declared
   28 |   auto _doActivate(GtkTreePath* = nullptr, GtkTreeViewColumn* = nullptr) -> void;
      |                    ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:28:44: error: 'GtkTreeViewColumn' has not been declared
   28 |   auto _doActivate(GtkTreePath* = nullptr, GtkTreeViewColumn* = nullptr) -> void;
      |                                            ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:31:20: error: 'GtkTreeViewColumn' has not been declared
   31 |   auto _doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void;
      |                    ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:31:47: error: 'GtkCellRenderer' has not been declared
   31 |   auto _doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void;
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:31:74: error: 'GtkTreeIter' has not been declared
   31 |   auto _doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void;
      |                                                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:32:16: error: 'GtkCellRendererText' has not been declared
   32 |   auto _doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void;
      |                ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:33:17: error: 'GdkEventButton' has not been declared
   33 |   auto _doEvent(GdkEventButton* event) -> int;
      |                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:34:26: error: 'GtkTreeViewColumn' has not been declared
   34 |   auto _doHeaderActivate(GtkTreeViewColumn* column) -> void;
      |                          ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:35:20: error: 'GdkEventKey' has not been declared
   35 |   auto _doKeyPress(GdkEventKey* event) -> bool;
      |                    ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:37:18: error: 'GtkCellRendererToggle' has not been declared
   37 |   auto _doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void;
      |                  ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:42:3: error: 'GtkScrolledWindow' does not name a type
   42 |   GtkScrolledWindow* gtkScrolledWindow = nullptr;
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:43:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   43 |   GtkWidget* gtkWidgetChild = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/table-view.hpp:44:3: error: 'GtkTreeView' does not name a type; did you mean 'wTreeView'?
   44 |   GtkTreeView* gtkTreeView = nullptr;
      |   ^~~~~~~~~~~
      |   wTreeView
../hiro/core/../gtk/widget/table-view.hpp:45:3: error: 'GtkTreeSelection' does not name a type
   45 |   GtkTreeSelection* gtkTreeSelection = nullptr;
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:46:3: error: 'GtkListStore' does not name a type
   46 |   GtkListStore* gtkListStore = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:47:3: error: 'GtkTreeModel' does not name a type
   47 |   GtkTreeModel* gtkTreeModel = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.hpp:48:3: error: 'GtkEntry' does not name a type
   48 |   GtkEntry* gtkEntry = nullptr;
      |   ^~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:59:
../hiro/core/../gtk/widget/table-view-column.hpp:26:3: error: 'GtkTreeViewColumn' does not name a type
   26 |   GtkTreeViewColumn* gtkColumn = nullptr;
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.hpp:27:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   27 |   GtkWidget* gtkHeader = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/widget/table-view-column.hpp:28:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   28 |   GtkWidget* gtkHeaderIcon = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/widget/table-view-column.hpp:29:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   29 |   GtkWidget* gtkHeaderText = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/widget/table-view-column.hpp:30:3: error: 'GtkWidget' does not name a type; did you mean 'wWidget'?
   30 |   GtkWidget* gtkHeaderSort = nullptr;
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/widget/table-view-column.hpp:31:3: error: 'GtkCellRenderer' does not name a type
   31 |   GtkCellRenderer* gtkCellToggle = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.hpp:32:3: error: 'GtkCellRenderer' does not name a type
   32 |   GtkCellRenderer* gtkCellIcon = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.hpp:33:3: error: 'GtkCellRenderer' does not name a type
   33 |   GtkCellRenderer* gtkCellText = nullptr;
      |   ^~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:60:
../hiro/core/../gtk/widget/table-view-item.hpp:19:3: error: 'GtkTreeIter' does not name a type
   19 |   GtkTreeIter gtkIter;
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:62:
../hiro/core/../gtk/widget/text-edit.hpp:19:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   19 |   GtkWidget* subWidget = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/text-edit.hpp:20:3: error: 'GtkTextBuffer' does not name a type
   20 |   GtkTextBuffer* textBuffer = nullptr;
      |   ^~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:63:
../hiro/core/../gtk/widget/tree-view.hpp:16:22: error: 'GtkTreePath' has not been declared
   16 |   auto _activatePath(GtkTreePath* gtkPath) -> void;
      |                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:17:21: error: 'GdkEventButton' has not been declared
   17 |   auto _buttonEvent(GdkEventButton* gdkEvent) -> signed;
      |                     ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:18:20: error: 'GtkTreeViewColumn' has not been declared
   18 |   auto _doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void;
      |                    ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:18:47: error: 'GtkCellRenderer' has not been declared
   18 |   auto _doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void;
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:18:74: error: 'GtkTreeIter' has not been declared
   18 |   auto _doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void;
      |                                                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:25:3: error: 'GtkScrolledWindow' does not name a type
   25 |   GtkScrolledWindow* gtkScrolledWindow = nullptr;
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:26:3: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   26 |   GtkWidget* gtkWidgetChild = nullptr;
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/tree-view.hpp:27:3: error: 'GtkTreeStore' does not name a type
   27 |   GtkTreeStore* gtkTreeStore = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:28:3: error: 'GtkTreeModel' does not name a type
   28 |   GtkTreeModel* gtkTreeModel = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:29:3: error: 'GtkTreeSelection' does not name a type
   29 |   GtkTreeSelection* gtkTreeSelection = nullptr;
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:30:3: error: 'GtkTreeView' does not name a type; did you mean 'pTreeView'?
   30 |   GtkTreeView* gtkTreeView = nullptr;
      |   ^~~~~~~~~~~
      |   pTreeView
../hiro/core/../gtk/widget/tree-view.hpp:31:3: error: 'GtkTreeViewColumn' does not name a type
   31 |   GtkTreeViewColumn* gtkTreeViewColumn = nullptr;
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:32:3: error: 'GtkCellRenderer' does not name a type
   32 |   GtkCellRenderer* gtkCellToggle = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:33:3: error: 'GtkCellRenderer' does not name a type
   33 |   GtkCellRenderer* gtkCellPixbuf = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:34:3: error: 'GtkCellRenderer' does not name a type
   34 |   GtkCellRenderer* gtkCellText = nullptr;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.hpp:35:3: error: 'GtkEntry' does not name a type
   35 |   GtkEntry* gtkEntry = nullptr;
      |   ^~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:64:
../hiro/core/../gtk/widget/tree-view-item.hpp:25:3: error: 'GtkTreeIter' does not name a type
   25 |   GtkTreeIter gtkIter;
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.hpp:67:
../hiro/core/../gtk/widget/viewport.hpp:11:16: error: 'cairo_t' has not been declared
   11 |   auto _onDraw(cairo_t* context) -> void;
      |                ^~~~~~~
../hiro/core/../gtk/widget/viewport.hpp:12:18: error: 'GdkEventExpose' has not been declared
   12 |   auto _onExpose(GdkEventExpose* expose) -> void;
      |                  ^~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:2:
../hiro/core/../gtk/utility.cpp:4:48: error: 'GdkColor' does not name a type; did you mean 'Color'?
    4 | static auto CreateColor(const Color& color) -> GdkColor {
      |                                                ^~~~~~~~
      |                                                Color
../hiro/core/../gtk/utility.cpp:14:61: error: 'GdkPixbuf' does not name a type
   14 | static auto CreatePixbuf(image icon, bool scale = false) -> GdkPixbuf* {
      |                                                             ^~~~~~~~~
../hiro/core/../gtk/utility.cpp:14:70: error: expected initializer before '*' token
   14 | static auto CreatePixbuf(image icon, bool scale = false) -> GdkPixbuf* {
      |                                                                      ^
../hiro/core/../gtk/utility.cpp:32:67: error: 'GtkImage' does not name a type
   32 | static auto CreateImage(const image& icon, bool scale = false) -> GtkImage* {
      |                                                                   ^~~~~~~~
../hiro/core/../gtk/utility.cpp:32:75: error: expected initializer before '*' token
   32 | static auto CreateImage(const image& icon, bool scale = false) -> GtkImage* {
      |                                                                           ^
../hiro/core/../gtk/utility.cpp:39:23: error: 'GtkSelectionData' was not declared in this scope
   39 | static auto DropPaths(GtkSelectionData* data) -> vector<string> {
      |                       ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/utility.cpp:39:41: error: 'data' was not declared in this scope
   39 | static auto DropPaths(GtkSelectionData* data) -> vector<string> {
      |                                         ^~~~
../hiro/core/../gtk/utility.cpp:39:47: error: expected ',' or ';' before '->' token
   39 | static auto DropPaths(GtkSelectionData* data) -> vector<string> {
      |                                               ^~
In file included from ../hiro/core/../gtk/platform.cpp:4:
../hiro/core/../gtk/font.cpp: In static member function 'static hiro::Size hiro::pFont::size(const hiro::Font&, const nall::string&)':
../hiro/core/../gtk/font.cpp:6:3: error: 'PangoFontDescription' was not declared in this scope
    6 |   PangoFontDescription* description = create(font);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.cpp:6:25: error: 'description' was not declared in this scope
    6 |   PangoFontDescription* description = create(font);
      |                         ^~~~~~~~~~~
../hiro/core/../gtk/font.cpp:6:39: error: 'create' was not declared in this scope; did you mean 'creat'?
    6 |   PangoFontDescription* description = create(font);
      |                                       ^~~~~~
      |                                       creat
../hiro/core/../gtk/font.cpp: At global scope:
../hiro/core/../gtk/font.cpp:12:6: error: 'auto hiro::pFont::size' is not a static data member of 'struct hiro::pFont'
   12 | auto pFont::size(PangoFontDescription* font, const string& text) -> Size {
      |      ^~~~~
../hiro/core/../gtk/font.cpp:12:18: error: 'PangoFontDescription' was not declared in this scope
   12 | auto pFont::size(PangoFontDescription* font, const string& text) -> Size {
      |                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.cpp:12:40: error: 'font' was not declared in this scope; did you mean 'Font'?
   12 | auto pFont::size(PangoFontDescription* font, const string& text) -> Size {
      |                                        ^~~~
      |                                        Font
../hiro/core/../gtk/font.cpp:12:46: error: expected primary-expression before 'const'
   12 | auto pFont::size(PangoFontDescription* font, const string& text) -> Size {
      |                                              ^~~~~
../hiro/core/../gtk/font.cpp:12:64: error: expression list treated as compound expression in initializer [-fpermissive]
   12 | auto pFont::size(PangoFontDescription* font, const string& text) -> Size {
      |                                                                ^
../hiro/core/../gtk/font.cpp:12:66: error: expected ',' or ';' before '->' token
   12 | auto pFont::size(PangoFontDescription* font, const string& text) -> Size {
      |                                                                  ^~
../hiro/core/../gtk/font.cpp:40:41: error: 'PangoFontDescription' does not name a type
   40 | auto pFont::create(const Font& font) -> PangoFontDescription* {
      |                                         ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.cpp:40:61: error: expected initializer before '*' token
   40 | auto pFont::create(const Font& font) -> PangoFontDescription* {
      |                                                             ^
../hiro/core/../gtk/font.cpp:49:6: error: 'auto hiro::pFont::free' is not a static data member of 'struct hiro::pFont'
   49 | auto pFont::free(PangoFontDescription* font) -> void {
      |      ^~~~~
../hiro/core/../gtk/font.cpp:49:18: error: 'PangoFontDescription' was not declared in this scope
   49 | auto pFont::free(PangoFontDescription* font) -> void {
      |                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/font.cpp:49:40: error: 'font' was not declared in this scope; did you mean 'Font'?
   49 | auto pFont::free(PangoFontDescription* font) -> void {
      |                                        ^~~~
      |                                        Font
../hiro/core/../gtk/font.cpp:49:46: error: expected ',' or ';' before '->' token
   49 | auto pFont::free(PangoFontDescription* font) -> void {
      |                                              ^~
../hiro/core/../gtk/font.cpp:53:6: error: 'auto hiro::pFont::setFont' is not a static data member of 'struct hiro::pFont'
   53 | auto pFont::setFont(GtkWidget* widget, const Font& font) -> void {
      |      ^~~~~
../hiro/core/../gtk/font.cpp:53:21: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   53 | auto pFont::setFont(GtkWidget* widget, const Font& font) -> void {
      |                     ^~~~~~~~~
      |                     wWidget
../hiro/core/../gtk/font.cpp:53:32: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   53 | auto pFont::setFont(GtkWidget* widget, const Font& font) -> void {
      |                                ^~~~~~
      |                                Widget
../hiro/core/../gtk/font.cpp:53:40: error: expected primary-expression before 'const'
   53 | auto pFont::setFont(GtkWidget* widget, const Font& font) -> void {
      |                                        ^~~~~
../hiro/core/../gtk/font.cpp:53:56: error: expression list treated as compound expression in initializer [-fpermissive]
   53 | auto pFont::setFont(GtkWidget* widget, const Font& font) -> void {
      |                                                        ^
../hiro/core/../gtk/font.cpp:53:58: error: expected ',' or ';' before '->' token
   53 | auto pFont::setFont(GtkWidget* widget, const Font& font) -> void {
      |                                                          ^~
../hiro/core/../gtk/font.cpp:59:6: error: 'auto hiro::pFont::setFont' is not a static data member of 'struct hiro::pFont'
   59 | auto pFont::setFont(GtkWidget* widget, gpointer font) -> void {
      |      ^~~~~
../hiro/core/../gtk/font.cpp:59:21: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   59 | auto pFont::setFont(GtkWidget* widget, gpointer font) -> void {
      |                     ^~~~~~~~~
      |                     wWidget
../hiro/core/../gtk/font.cpp:59:32: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   59 | auto pFont::setFont(GtkWidget* widget, gpointer font) -> void {
      |                                ^~~~~~
      |                                Widget
../hiro/core/../gtk/font.cpp:59:40: error: 'gpointer' was not declared in this scope
   59 | auto pFont::setFont(GtkWidget* widget, gpointer font) -> void {
      |                                        ^~~~~~~~
../hiro/core/../gtk/font.cpp:59:53: error: expression list treated as compound expression in initializer [-fpermissive]
   59 | auto pFont::setFont(GtkWidget* widget, gpointer font) -> void {
      |                                                     ^
../hiro/core/../gtk/font.cpp:59:55: error: expected ',' or ';' before '->' token
   59 | auto pFont::setFont(GtkWidget* widget, gpointer font) -> void {
      |                                                       ^~
In file included from ../hiro/core/../gtk/platform.cpp:5:
../hiro/core/../gtk/desktop.cpp: In static member function 'static hiro::Size hiro::pDesktop::size()':
../hiro/core/../gtk/desktop.cpp:7:26: error: 'gdk_screen_get_default' was not declared in this scope
    7 |     gdk_screen_get_width(gdk_screen_get_default()),
      |                          ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/desktop.cpp:7:5: error: 'gdk_screen_get_width' was not declared in this scope
    7 |     gdk_screen_get_width(gdk_screen_get_default()),
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/desktop.cpp:8:5: error: 'gdk_screen_get_height' was not declared in this scope
    8 |     gdk_screen_get_height(gdk_screen_get_default())
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/desktop.cpp:9:3: error: could not convert '{<expression error>, <expression error>}' from '<brace-enclosed initializer list>' to 'hiro::Size'
    9 |   };
      |   ^
      |   |
      |   <brace-enclosed initializer list>
In file included from ../hiro/core/../gtk/platform.cpp:6:
../hiro/core/../gtk/monitor.cpp: In static member function 'static uint hiro::pMonitor::count()':
../hiro/core/../gtk/monitor.cpp:10:36: error: 'gdk_screen_get_default' was not declared in this scope
   10 |   return gdk_screen_get_n_monitors(gdk_screen_get_default());
      |                                    ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp:10:10: error: 'gdk_screen_get_n_monitors' was not declared in this scope
   10 |   return gdk_screen_get_n_monitors(gdk_screen_get_default());
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp: In static member function 'static hiro::Position hiro::pMonitor::dpi(uint)':
../hiro/core/../gtk/monitor.cpp:19:47: error: 'gdk_screen_get_default' was not declared in this scope
   19 |   float dpi = round(gdk_screen_get_resolution(gdk_screen_get_default()));
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp:19:21: error: 'gdk_screen_get_resolution' was not declared in this scope
   19 |   float dpi = round(gdk_screen_get_resolution(gdk_screen_get_default()));
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp: In static member function 'static hiro::Geometry hiro::pMonitor::geometry(uint)':
../hiro/core/../gtk/monitor.cpp:31:3: error: 'GdkRectangle' was not declared in this scope
   31 |   GdkRectangle rectangle = {};
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp:33:35: error: 'gdk_screen_get_default' was not declared in this scope
   33 |   gdk_screen_get_monitor_geometry(gdk_screen_get_default(), monitor, &rectangle);
      |                                   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp:33:71: error: 'rectangle' was not declared in this scope
   33 |   gdk_screen_get_monitor_geometry(gdk_screen_get_default(), monitor, &rectangle);
      |                                                                       ^~~~~~~~~
../hiro/core/../gtk/monitor.cpp:33:3: error: 'gdk_screen_get_monitor_geometry' was not declared in this scope
   33 |   gdk_screen_get_monitor_geometry(gdk_screen_get_default(), monitor, &rectangle);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp:38:70: error: could not convert '{<expression error>, <expression error>, <expression error>, <expression error>}' from '<brace-enclosed initializer list>' to 'hiro::Geometry'
   38 |   return {rectangle.x, rectangle.y, rectangle.width, rectangle.height};
      |                                                                      ^
      |                                                                      |
      |                                                                      <brace-enclosed initializer list>
../hiro/core/../gtk/monitor.cpp: In static member function 'static uint hiro::pMonitor::primary()':
../hiro/core/../gtk/monitor.cpp:43:41: error: 'gdk_screen_get_default' was not declared in this scope
   43 |   return gdk_screen_get_primary_monitor(gdk_screen_get_default());
      |                                         ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/monitor.cpp:43:10: error: 'gdk_screen_get_primary_monitor' was not declared in this scope
   43 |   return gdk_screen_get_primary_monitor(gdk_screen_get_default());
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:7:
../hiro/core/../gtk/keyboard.cpp: In static member function 'static int hiro::pKeyboard::_translate(unsigned int)':
../hiro/core/../gtk/keyboard.cpp:46:8: error: 'GDK_KEY_Escape' was not declared in this scope
   46 |   case GDK_KEY_Escape: return 0;
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:47:8: error: 'GDK_KEY_F1' was not declared in this scope
   47 |   case GDK_KEY_F1: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:48:8: error: 'GDK_KEY_F2' was not declared in this scope
   48 |   case GDK_KEY_F2: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:49:8: error: 'GDK_KEY_F3' was not declared in this scope
   49 |   case GDK_KEY_F3: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:50:8: error: 'GDK_KEY_F4' was not declared in this scope
   50 |   case GDK_KEY_F4: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:51:8: error: 'GDK_KEY_F5' was not declared in this scope
   51 |   case GDK_KEY_F5: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:52:8: error: 'GDK_KEY_F6' was not declared in this scope
   52 |   case GDK_KEY_F6: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:53:8: error: 'GDK_KEY_F7' was not declared in this scope
   53 |   case GDK_KEY_F7: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:54:8: error: 'GDK_KEY_F8' was not declared in this scope
   54 |   case GDK_KEY_F8: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:55:8: error: 'GDK_KEY_F9' was not declared in this scope
   55 |   case GDK_KEY_F9: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:56:8: error: 'GDK_KEY_F10' was not declared in this scope
   56 |   case GDK_KEY_F10: return 0;
      |        ^~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:57:8: error: 'GDK_KEY_F11' was not declared in this scope
   57 |   case GDK_KEY_F11: return 0;
      |        ^~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:58:8: error: 'GDK_KEY_F12' was not declared in this scope
   58 |   case GDK_KEY_F12: return 0;
      |        ^~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:60:8: error: 'GDK_KEY_Print' was not declared in this scope
   60 |   case GDK_KEY_Print: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:61:8: error: 'GDK_KEY_Scroll_Lock' was not declared in this scope
   61 |   case GDK_KEY_Scroll_Lock: return 0;
      |        ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:62:8: error: 'GDK_KEY_Pause' was not declared in this scope
   62 |   case GDK_KEY_Pause: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:64:8: error: 'GDK_KEY_Insert' was not declared in this scope
   64 |   case GDK_KEY_Insert: return 0;
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:65:8: error: 'GDK_KEY_Delete' was not declared in this scope
   65 |   case GDK_KEY_Delete: return 0;
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:66:8: error: 'GDK_KEY_Home' was not declared in this scope
   66 |   case GDK_KEY_Home: return 0;
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:67:8: error: 'GDK_KEY_End' was not declared in this scope
   67 |   case GDK_KEY_End: return 0;
      |        ^~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:68:8: error: 'GDK_KEY_Prior' was not declared in this scope
   68 |   case GDK_KEY_Prior: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:69:8: error: 'GDK_KEY_Next' was not declared in this scope
   69 |   case GDK_KEY_Next: return 0;
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:71:8: error: 'GDK_KEY_Up' was not declared in this scope
   71 |   case GDK_KEY_Up: return 0;
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:72:8: error: 'GDK_KEY_Down' was not declared in this scope
   72 |   case GDK_KEY_Down: return 0;
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:73:8: error: 'GDK_KEY_Left' was not declared in this scope
   73 |   case GDK_KEY_Left: return 0;
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:74:8: error: 'GDK_KEY_Right' was not declared in this scope
   74 |   case GDK_KEY_Right: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:76:8: error: 'GDK_KEY_grave' was not declared in this scope
   76 |   case GDK_KEY_grave: return '`';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:77:8: error: 'GDK_KEY_1' was not declared in this scope
   77 |   case GDK_KEY_1: return '1';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:78:8: error: 'GDK_KEY_2' was not declared in this scope
   78 |   case GDK_KEY_2: return '2';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:79:8: error: 'GDK_KEY_3' was not declared in this scope
   79 |   case GDK_KEY_3: return '3';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:80:8: error: 'GDK_KEY_4' was not declared in this scope
   80 |   case GDK_KEY_4: return '4';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:81:8: error: 'GDK_KEY_5' was not declared in this scope
   81 |   case GDK_KEY_5: return '5';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:82:8: error: 'GDK_KEY_6' was not declared in this scope
   82 |   case GDK_KEY_6: return '6';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:83:8: error: 'GDK_KEY_7' was not declared in this scope
   83 |   case GDK_KEY_7: return '7';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:84:8: error: 'GDK_KEY_8' was not declared in this scope
   84 |   case GDK_KEY_8: return '8';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:85:8: error: 'GDK_KEY_9' was not declared in this scope
   85 |   case GDK_KEY_9: return '9';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:86:8: error: 'GDK_KEY_0' was not declared in this scope
   86 |   case GDK_KEY_0: return '0';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:87:8: error: 'GDK_KEY_minus' was not declared in this scope
   87 |   case GDK_KEY_minus: return '-';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:88:8: error: 'GDK_KEY_equal' was not declared in this scope
   88 |   case GDK_KEY_equal: return '=';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:89:8: error: 'GDK_KEY_BackSpace' was not declared in this scope
   89 |   case GDK_KEY_BackSpace: return '\b';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:91:8: error: 'GDK_KEY_asciitilde' was not declared in this scope
   91 |   case GDK_KEY_asciitilde: return '~';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:92:8: error: 'GDK_KEY_exclam' was not declared in this scope
   92 |   case GDK_KEY_exclam: return '!';
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:93:8: error: 'GDK_KEY_at' was not declared in this scope
   93 |   case GDK_KEY_at: return '@';
      |        ^~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:94:8: error: 'GDK_KEY_numbersign' was not declared in this scope
   94 |   case GDK_KEY_numbersign: return '#';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:95:8: error: 'GDK_KEY_dollar' was not declared in this scope
   95 |   case GDK_KEY_dollar: return '$';
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:96:8: error: 'GDK_KEY_percent' was not declared in this scope
   96 |   case GDK_KEY_percent: return '%';
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:97:8: error: 'GDK_KEY_asciicircum' was not declared in this scope
   97 |   case GDK_KEY_asciicircum: return '^';
      |        ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:98:8: error: 'GDK_KEY_ampersand' was not declared in this scope
   98 |   case GDK_KEY_ampersand: return '&';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:99:8: error: 'GDK_KEY_asterisk' was not declared in this scope
   99 |   case GDK_KEY_asterisk: return '*';
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:100:8: error: 'GDK_KEY_parenleft' was not declared in this scope
  100 |   case GDK_KEY_parenleft: return '(';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:101:8: error: 'GDK_KEY_parenright' was not declared in this scope
  101 |   case GDK_KEY_parenright: return ')';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:102:8: error: 'GDK_KEY_underscore' was not declared in this scope
  102 |   case GDK_KEY_underscore: return '_';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:103:8: error: 'GDK_KEY_plus' was not declared in this scope
  103 |   case GDK_KEY_plus: return '+';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:105:8: error: 'GDK_KEY_Tab' was not declared in this scope
  105 |   case GDK_KEY_Tab: return '\t';
      |        ^~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:106:8: error: 'GDK_KEY_Caps_Lock' was not declared in this scope
  106 |   case GDK_KEY_Caps_Lock: return 0;
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:107:8: error: 'GDK_KEY_Return' was not declared in this scope
  107 |   case GDK_KEY_Return: return '\n';
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:108:8: error: 'GDK_KEY_Shift_L' was not declared in this scope
  108 |   case GDK_KEY_Shift_L: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:109:8: error: 'GDK_KEY_Shift_R' was not declared in this scope
  109 |   case GDK_KEY_Shift_R: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:110:8: error: 'GDK_KEY_Control_L' was not declared in this scope
  110 |   case GDK_KEY_Control_L: return 0;
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:111:8: error: 'GDK_KEY_Control_R' was not declared in this scope
  111 |   case GDK_KEY_Control_R: return 0;
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:112:8: error: 'GDK_KEY_Alt_L' was not declared in this scope
  112 |   case GDK_KEY_Alt_L: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:113:8: error: 'GDK_KEY_Alt_R' was not declared in this scope
  113 |   case GDK_KEY_Alt_R: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:114:8: error: 'GDK_KEY_Super_L' was not declared in this scope
  114 |   case GDK_KEY_Super_L: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:115:8: error: 'GDK_KEY_Super_R' was not declared in this scope
  115 |   case GDK_KEY_Super_R: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:116:8: error: 'GDK_KEY_Menu' was not declared in this scope
  116 |   case GDK_KEY_Menu: return 0;
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:117:8: error: 'GDK_KEY_space' was not declared in this scope
  117 |   case GDK_KEY_space: return ' ';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:119:8: error: 'GDK_KEY_bracketleft' was not declared in this scope
  119 |   case GDK_KEY_bracketleft: return '[';
      |        ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:120:8: error: 'GDK_KEY_bracketright' was not declared in this scope
  120 |   case GDK_KEY_bracketright: return ']';
      |        ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:121:8: error: 'GDK_KEY_backslash' was not declared in this scope
  121 |   case GDK_KEY_backslash: return '\\';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:122:8: error: 'GDK_KEY_semicolon' was not declared in this scope
  122 |   case GDK_KEY_semicolon: return ';';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:123:8: error: 'GDK_KEY_apostrophe' was not declared in this scope
  123 |   case GDK_KEY_apostrophe: return '\'';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:124:8: error: 'GDK_KEY_comma' was not declared in this scope
  124 |   case GDK_KEY_comma: return ',';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:125:8: error: 'GDK_KEY_period' was not declared in this scope
  125 |   case GDK_KEY_period: return '.';
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:126:8: error: 'GDK_KEY_slash' was not declared in this scope
  126 |   case GDK_KEY_slash: return '/';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:128:8: error: 'GDK_KEY_braceleft' was not declared in this scope
  128 |   case GDK_KEY_braceleft: return '{';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:129:8: error: 'GDK_KEY_braceright' was not declared in this scope
  129 |   case GDK_KEY_braceright: return '}';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:130:8: error: 'GDK_KEY_bar' was not declared in this scope
  130 |   case GDK_KEY_bar: return '|';
      |        ^~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:131:8: error: 'GDK_KEY_colon' was not declared in this scope
  131 |   case GDK_KEY_colon: return ':';
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:132:8: error: 'GDK_KEY_quotedbl' was not declared in this scope
  132 |   case GDK_KEY_quotedbl: return '\"';
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:133:8: error: 'GDK_KEY_less' was not declared in this scope
  133 |   case GDK_KEY_less: return '<';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:134:8: error: 'GDK_KEY_greater' was not declared in this scope
  134 |   case GDK_KEY_greater: return '>';
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:135:8: error: 'GDK_KEY_question' was not declared in this scope
  135 |   case GDK_KEY_question: return '?';
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:137:8: error: 'GDK_KEY_A' was not declared in this scope
  137 |   case GDK_KEY_A: return 'A';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:138:8: error: 'GDK_KEY_B' was not declared in this scope
  138 |   case GDK_KEY_B: return 'B';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:139:8: error: 'GDK_KEY_C' was not declared in this scope
  139 |   case GDK_KEY_C: return 'C';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:140:8: error: 'GDK_KEY_D' was not declared in this scope
  140 |   case GDK_KEY_D: return 'D';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:141:8: error: 'GDK_KEY_E' was not declared in this scope
  141 |   case GDK_KEY_E: return 'E';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:142:8: error: 'GDK_KEY_F' was not declared in this scope
  142 |   case GDK_KEY_F: return 'F';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:143:8: error: 'GDK_KEY_G' was not declared in this scope
  143 |   case GDK_KEY_G: return 'G';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:144:8: error: 'GDK_KEY_H' was not declared in this scope
  144 |   case GDK_KEY_H: return 'H';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:145:8: error: 'GDK_KEY_I' was not declared in this scope
  145 |   case GDK_KEY_I: return 'I';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:146:8: error: 'GDK_KEY_J' was not declared in this scope
  146 |   case GDK_KEY_J: return 'J';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:147:8: error: 'GDK_KEY_K' was not declared in this scope
  147 |   case GDK_KEY_K: return 'K';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:148:8: error: 'GDK_KEY_L' was not declared in this scope
  148 |   case GDK_KEY_L: return 'L';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:149:8: error: 'GDK_KEY_M' was not declared in this scope
  149 |   case GDK_KEY_M: return 'M';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:150:8: error: 'GDK_KEY_N' was not declared in this scope
  150 |   case GDK_KEY_N: return 'N';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:151:8: error: 'GDK_KEY_O' was not declared in this scope
  151 |   case GDK_KEY_O: return 'O';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:152:8: error: 'GDK_KEY_P' was not declared in this scope
  152 |   case GDK_KEY_P: return 'P';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:153:8: error: 'GDK_KEY_Q' was not declared in this scope
  153 |   case GDK_KEY_Q: return 'Q';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:154:8: error: 'GDK_KEY_R' was not declared in this scope
  154 |   case GDK_KEY_R: return 'R';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:155:8: error: 'GDK_KEY_S' was not declared in this scope
  155 |   case GDK_KEY_S: return 'S';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:156:8: error: 'GDK_KEY_T' was not declared in this scope
  156 |   case GDK_KEY_T: return 'T';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:157:8: error: 'GDK_KEY_U' was not declared in this scope
  157 |   case GDK_KEY_U: return 'U';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:158:8: error: 'GDK_KEY_V' was not declared in this scope
  158 |   case GDK_KEY_V: return 'V';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:159:8: error: 'GDK_KEY_W' was not declared in this scope
  159 |   case GDK_KEY_W: return 'W';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:160:8: error: 'GDK_KEY_X' was not declared in this scope
  160 |   case GDK_KEY_X: return 'X';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:161:8: error: 'GDK_KEY_Y' was not declared in this scope
  161 |   case GDK_KEY_Y: return 'Y';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:162:8: error: 'GDK_KEY_Z' was not declared in this scope
  162 |   case GDK_KEY_Z: return 'Z';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:164:8: error: 'GDK_KEY_a' was not declared in this scope
  164 |   case GDK_KEY_a: return 'a';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:165:8: error: 'GDK_KEY_b' was not declared in this scope
  165 |   case GDK_KEY_b: return 'b';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:166:8: error: 'GDK_KEY_c' was not declared in this scope
  166 |   case GDK_KEY_c: return 'c';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:167:8: error: 'GDK_KEY_d' was not declared in this scope
  167 |   case GDK_KEY_d: return 'd';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:168:8: error: 'GDK_KEY_e' was not declared in this scope
  168 |   case GDK_KEY_e: return 'e';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:169:8: error: 'GDK_KEY_f' was not declared in this scope
  169 |   case GDK_KEY_f: return 'f';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:170:8: error: 'GDK_KEY_g' was not declared in this scope
  170 |   case GDK_KEY_g: return 'g';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:171:8: error: 'GDK_KEY_h' was not declared in this scope
  171 |   case GDK_KEY_h: return 'h';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:172:8: error: 'GDK_KEY_i' was not declared in this scope
  172 |   case GDK_KEY_i: return 'i';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:173:8: error: 'GDK_KEY_j' was not declared in this scope
  173 |   case GDK_KEY_j: return 'j';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:174:8: error: 'GDK_KEY_k' was not declared in this scope
  174 |   case GDK_KEY_k: return 'k';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:175:8: error: 'GDK_KEY_l' was not declared in this scope
  175 |   case GDK_KEY_l: return 'l';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:176:8: error: 'GDK_KEY_m' was not declared in this scope
  176 |   case GDK_KEY_m: return 'm';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:177:8: error: 'GDK_KEY_n' was not declared in this scope
  177 |   case GDK_KEY_n: return 'n';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:178:8: error: 'GDK_KEY_o' was not declared in this scope
  178 |   case GDK_KEY_o: return 'o';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:179:8: error: 'GDK_KEY_p' was not declared in this scope
  179 |   case GDK_KEY_p: return 'p';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:180:8: error: 'GDK_KEY_q' was not declared in this scope
  180 |   case GDK_KEY_q: return 'q';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:181:8: error: 'GDK_KEY_r' was not declared in this scope
  181 |   case GDK_KEY_r: return 'r';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:182:8: error: 'GDK_KEY_s' was not declared in this scope
  182 |   case GDK_KEY_s: return 's';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:183:8: error: 'GDK_KEY_t' was not declared in this scope
  183 |   case GDK_KEY_t: return 't';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:184:8: error: 'GDK_KEY_u' was not declared in this scope
  184 |   case GDK_KEY_u: return 'u';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:185:8: error: 'GDK_KEY_v' was not declared in this scope
  185 |   case GDK_KEY_v: return 'v';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:186:8: error: 'GDK_KEY_w' was not declared in this scope
  186 |   case GDK_KEY_w: return 'w';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:187:8: error: 'GDK_KEY_x' was not declared in this scope
  187 |   case GDK_KEY_x: return 'x';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:188:8: error: 'GDK_KEY_y' was not declared in this scope
  188 |   case GDK_KEY_y: return 'y';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:189:8: error: 'GDK_KEY_z' was not declared in this scope
  189 |   case GDK_KEY_z: return 'z';
      |        ^~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:191:8: error: 'GDK_KEY_Num_Lock' was not declared in this scope
  191 |   case GDK_KEY_Num_Lock: return 0;
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:192:8: error: 'GDK_KEY_KP_Divide' was not declared in this scope
  192 |   case GDK_KEY_KP_Divide: return '/';
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:193:8: error: 'GDK_KEY_KP_Multiply' was not declared in this scope
  193 |   case GDK_KEY_KP_Multiply: return '*';
      |        ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:194:8: error: 'GDK_KEY_KP_Subtract' was not declared in this scope
  194 |   case GDK_KEY_KP_Subtract: return '-';
      |        ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:195:8: error: 'GDK_KEY_KP_Add' was not declared in this scope
  195 |   case GDK_KEY_KP_Add: return '+';
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:196:8: error: 'GDK_KEY_KP_Enter' was not declared in this scope
  196 |   case GDK_KEY_KP_Enter: return '\n';
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:197:8: error: 'GDK_KEY_KP_Decimal' was not declared in this scope
  197 |   case GDK_KEY_KP_Decimal: return '.';
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:199:8: error: 'GDK_KEY_KP_1' was not declared in this scope
  199 |   case GDK_KEY_KP_1: return '1';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:200:8: error: 'GDK_KEY_KP_2' was not declared in this scope
  200 |   case GDK_KEY_KP_2: return '2';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:201:8: error: 'GDK_KEY_KP_3' was not declared in this scope
  201 |   case GDK_KEY_KP_3: return '3';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:202:8: error: 'GDK_KEY_KP_4' was not declared in this scope
  202 |   case GDK_KEY_KP_4: return '4';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:203:8: error: 'GDK_KEY_KP_5' was not declared in this scope
  203 |   case GDK_KEY_KP_5: return '5';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:204:8: error: 'GDK_KEY_KP_6' was not declared in this scope
  204 |   case GDK_KEY_KP_6: return '6';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:205:8: error: 'GDK_KEY_KP_7' was not declared in this scope
  205 |   case GDK_KEY_KP_7: return '7';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:206:8: error: 'GDK_KEY_KP_8' was not declared in this scope
  206 |   case GDK_KEY_KP_8: return '8';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:207:8: error: 'GDK_KEY_KP_9' was not declared in this scope
  207 |   case GDK_KEY_KP_9: return '9';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:208:8: error: 'GDK_KEY_KP_0' was not declared in this scope
  208 |   case GDK_KEY_KP_0: return '0';
      |        ^~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:210:8: error: 'GDK_KEY_KP_Home' was not declared in this scope
  210 |   case GDK_KEY_KP_Home: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:211:8: error: 'GDK_KEY_KP_End' was not declared in this scope
  211 |   case GDK_KEY_KP_End: return 0;
      |        ^~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:212:8: error: 'GDK_KEY_KP_Page_Up' was not declared in this scope
  212 |   case GDK_KEY_KP_Page_Up: return 0;
      |        ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:213:8: error: 'GDK_KEY_KP_Page_Down' was not declared in this scope
  213 |   case GDK_KEY_KP_Page_Down: return 0;
      |        ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:214:8: error: 'GDK_KEY_KP_Up' was not declared in this scope
  214 |   case GDK_KEY_KP_Up: return 0;
      |        ^~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:215:8: error: 'GDK_KEY_KP_Down' was not declared in this scope
  215 |   case GDK_KEY_KP_Down: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:216:8: error: 'GDK_KEY_KP_Left' was not declared in this scope
  216 |   case GDK_KEY_KP_Left: return 0;
      |        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:217:8: error: 'GDK_KEY_KP_Right' was not declared in this scope
  217 |   case GDK_KEY_KP_Right: return 0;
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:218:8: error: 'GDK_KEY_KP_Begin' was not declared in this scope
  218 |   case GDK_KEY_KP_Begin: return 0;
      |        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:219:8: error: 'GDK_KEY_KP_Insert' was not declared in this scope
  219 |   case GDK_KEY_KP_Insert: return 0;
      |        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/keyboard.cpp:220:8: error: 'GDK_KEY_KP_Delete' was not declared in this scope
  220 |   case GDK_KEY_KP_Delete: return 0;
      |        ^~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:8:
../hiro/core/../gtk/mouse.cpp: In static member function 'static hiro::Position hiro::pMouse::position()':
../hiro/core/../gtk/mouse.cpp:19:1: warning: no return statement in function returning non-void [-Wreturn-type]
   19 | }
      | ^
In file included from ../hiro/core/../gtk/platform.cpp:9:
../hiro/core/../gtk/browser-window.cpp: At global scope:
../hiro/core/../gtk/browser-window.cpp:5:38: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto BrowserWindow_addFilters(GtkWidget* dialog, vector<string> filters) -> void {
      |                                      ^~~~~~~~~
      |                                      wWidget
../hiro/core/../gtk/browser-window.cpp:5:49: error: 'dialog' was not declared in this scope
    5 | static auto BrowserWindow_addFilters(GtkWidget* dialog, vector<string> filters) -> void {
      |                                                 ^~~~~~
../hiro/core/../gtk/browser-window.cpp:5:72: error: expected primary-expression before 'filters'
    5 | static auto BrowserWindow_addFilters(GtkWidget* dialog, vector<string> filters) -> void {
      |                                                                        ^~~~~~~
../hiro/core/../gtk/browser-window.cpp:5:79: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto BrowserWindow_addFilters(GtkWidget* dialog, vector<string> filters) -> void {
      |                                                                               ^
../hiro/core/../gtk/browser-window.cpp:5:81: error: expected ',' or ';' before '->' token
    5 | static auto BrowserWindow_addFilters(GtkWidget* dialog, vector<string> filters) -> void {
      |                                                                                 ^~
../hiro/core/../gtk/browser-window.cpp: In static member function 'static nall::string hiro::pBrowserWindow::directory(hiro::BrowserWindow::State&)':
../hiro/core/../gtk/browser-window.cpp:21:3: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   21 |   GtkWidget* dialog = gtk_file_chooser_dialog_new(
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/browser-window.cpp:21:14: error: 'dialog' was not declared in this scope
   21 |   GtkWidget* dialog = gtk_file_chooser_dialog_new(
      |              ^~~~~~
../hiro/core/../gtk/browser-window.cpp:23:77: error: 'struct hiro::pWindow' has no member named 'widget'
   23 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                             ^~~~~~
../hiro/core/../gtk/browser-window.cpp:23:44: error: 'GTK_WINDOW' was not declared in this scope
   23 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                            ^~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:23:88: error: 'GtkWindow' was not declared in this scope; did you mean 'wWindow'?
   23 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                        ^~~~~~~~~
      |                                                                                        wWindow
../hiro/core/../gtk/browser-window.cpp:23:98: error: expected primary-expression before ')' token
   23 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                                  ^
../hiro/core/../gtk/browser-window.cpp:24:5: error: 'GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER' was not declared in this scope
   24 |     GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:25:5: error: 'GTK_STOCK_CANCEL' was not declared in this scope
   25 |     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      |     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:25:23: error: 'GTK_RESPONSE_CANCEL' was not declared in this scope
   25 |     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      |                       ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:26:5: error: 'GTK_STOCK_OPEN' was not declared in this scope
   26 |     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
      |     ^~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:26:21: error: 'GTK_RESPONSE_ACCEPT' was not declared in this scope
   26 |     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
      |                     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:27:12: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
   27 |     (const gchar*)nullptr
      |            ^~~~~
../hiro/core/../gtk/browser-window.cpp:27:6: error: expected primary-expression before 'const'
   27 |     (const gchar*)nullptr
      |      ^~~~~
../hiro/core/../gtk/browser-window.cpp:27:6: error: expected ')' before 'const'
   27 |     (const gchar*)nullptr
      |     ~^~~~~
      |      )
../hiro/core/../gtk/browser-window.cpp:30:54: error: 'GTK_FILE_CHOOSER' was not declared in this scope
   30 |   if(state.path) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), state.path);
      |                                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:30:18: error: 'gtk_file_chooser_set_current_folder' was not declared in this scope
   30 |   if(state.path) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), state.path);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:32:21: error: 'GTK_DIALOG' was not declared in this scope
   32 |   if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
      |                     ^~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:32:6: error: 'gtk_dialog_run' was not declared in this scope
   32 |   if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
      |      ^~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:33:48: error: 'GTK_FILE_CHOOSER' was not declared in this scope
   33 |     char* temp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
      |                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:33:18: error: 'gtk_file_chooser_get_filename' was not declared in this scope
   33 |     char* temp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:35:5: error: 'g_free' was not declared in this scope; did you mean 'free'?
   35 |     g_free(temp);
      |     ^~~~~~
      |     free
../hiro/core/../gtk/browser-window.cpp:38:3: error: 'gtk_widget_destroy' was not declared in this scope
   38 |   gtk_widget_destroy(dialog);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp: In static member function 'static nall::string hiro::pBrowserWindow::open(hiro::BrowserWindow::State&)':
../hiro/core/../gtk/browser-window.cpp:46:3: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   46 |   GtkWidget* dialog = gtk_file_chooser_dialog_new(
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/browser-window.cpp:46:14: error: 'dialog' was not declared in this scope
   46 |   GtkWidget* dialog = gtk_file_chooser_dialog_new(
      |              ^~~~~~
../hiro/core/../gtk/browser-window.cpp:48:77: error: 'struct hiro::pWindow' has no member named 'widget'
   48 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                             ^~~~~~
../hiro/core/../gtk/browser-window.cpp:48:44: error: 'GTK_WINDOW' was not declared in this scope
   48 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                            ^~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:48:88: error: 'GtkWindow' was not declared in this scope; did you mean 'wWindow'?
   48 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                        ^~~~~~~~~
      |                                                                                        wWindow
../hiro/core/../gtk/browser-window.cpp:48:98: error: expected primary-expression before ')' token
   48 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                                  ^
../hiro/core/../gtk/browser-window.cpp:49:5: error: 'GTK_FILE_CHOOSER_ACTION_OPEN' was not declared in this scope
   49 |     GTK_FILE_CHOOSER_ACTION_OPEN,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:50:5: error: 'GTK_STOCK_CANCEL' was not declared in this scope
   50 |     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      |     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:50:23: error: 'GTK_RESPONSE_CANCEL' was not declared in this scope
   50 |     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      |                       ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:51:5: error: 'GTK_STOCK_OPEN' was not declared in this scope
   51 |     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
      |     ^~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:51:21: error: 'GTK_RESPONSE_ACCEPT' was not declared in this scope
   51 |     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
      |                     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:52:12: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
   52 |     (const gchar*)nullptr
      |            ^~~~~
../hiro/core/../gtk/browser-window.cpp:52:6: error: expected primary-expression before 'const'
   52 |     (const gchar*)nullptr
      |      ^~~~~
../hiro/core/../gtk/browser-window.cpp:52:6: error: expected ')' before 'const'
   52 |     (const gchar*)nullptr
      |     ~^~~~~
      |      )
../hiro/core/../gtk/browser-window.cpp:55:54: error: 'GTK_FILE_CHOOSER' was not declared in this scope
   55 |   if(state.path) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), state.path);
      |                                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:55:18: error: 'gtk_file_chooser_set_current_folder' was not declared in this scope
   55 |   if(state.path) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), state.path);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:58:21: error: 'GTK_DIALOG' was not declared in this scope
   58 |   if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
      |                     ^~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:58:6: error: 'gtk_dialog_run' was not declared in this scope
   58 |   if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
      |      ^~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:59:48: error: 'GTK_FILE_CHOOSER' was not declared in this scope
   59 |     char* temp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
      |                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:59:18: error: 'gtk_file_chooser_get_filename' was not declared in this scope
   59 |     char* temp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:61:5: error: 'g_free' was not declared in this scope; did you mean 'free'?
   61 |     g_free(temp);
      |     ^~~~~~
      |     free
../hiro/core/../gtk/browser-window.cpp:64:3: error: 'gtk_widget_destroy' was not declared in this scope
   64 |   gtk_widget_destroy(dialog);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp: In static member function 'static nall::string hiro::pBrowserWindow::save(hiro::BrowserWindow::State&)':
../hiro/core/../gtk/browser-window.cpp:71:3: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   71 |   GtkWidget* dialog = gtk_file_chooser_dialog_new(
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/browser-window.cpp:71:14: error: 'dialog' was not declared in this scope
   71 |   GtkWidget* dialog = gtk_file_chooser_dialog_new(
      |              ^~~~~~
../hiro/core/../gtk/browser-window.cpp:73:77: error: 'struct hiro::pWindow' has no member named 'widget'
   73 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                             ^~~~~~
../hiro/core/../gtk/browser-window.cpp:73:44: error: 'GTK_WINDOW' was not declared in this scope
   73 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                            ^~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:73:88: error: 'GtkWindow' was not declared in this scope; did you mean 'wWindow'?
   73 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                        ^~~~~~~~~
      |                                                                                        wWindow
../hiro/core/../gtk/browser-window.cpp:73:98: error: expected primary-expression before ')' token
   73 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                                  ^
../hiro/core/../gtk/browser-window.cpp:74:5: error: 'GTK_FILE_CHOOSER_ACTION_SAVE' was not declared in this scope
   74 |     GTK_FILE_CHOOSER_ACTION_SAVE,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:75:5: error: 'GTK_STOCK_CANCEL' was not declared in this scope
   75 |     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      |     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:75:23: error: 'GTK_RESPONSE_CANCEL' was not declared in this scope
   75 |     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      |                       ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:76:5: error: 'GTK_STOCK_OPEN' was not declared in this scope
   76 |     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
      |     ^~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:76:21: error: 'GTK_RESPONSE_ACCEPT' was not declared in this scope
   76 |     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
      |                     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:77:12: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
   77 |     (const gchar*)nullptr
      |            ^~~~~
../hiro/core/../gtk/browser-window.cpp:77:6: error: expected primary-expression before 'const'
   77 |     (const gchar*)nullptr
      |      ^~~~~
../hiro/core/../gtk/browser-window.cpp:77:6: error: expected ')' before 'const'
   77 |     (const gchar*)nullptr
      |     ~^~~~~
      |      )
../hiro/core/../gtk/browser-window.cpp:80:54: error: 'GTK_FILE_CHOOSER' was not declared in this scope
   80 |   if(state.path) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), state.path);
      |                                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:80:18: error: 'gtk_file_chooser_set_current_folder' was not declared in this scope
   80 |   if(state.path) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), state.path);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:83:21: error: 'GTK_DIALOG' was not declared in this scope
   83 |   if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
      |                     ^~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:83:6: error: 'gtk_dialog_run' was not declared in this scope
   83 |   if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
      |      ^~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:84:48: error: 'GTK_FILE_CHOOSER' was not declared in this scope
   84 |     char* temp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
      |                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:84:18: error: 'gtk_file_chooser_get_filename' was not declared in this scope
   84 |     char* temp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/browser-window.cpp:86:5: error: 'g_free' was not declared in this scope; did you mean 'free'?
   86 |     g_free(temp);
      |     ^~~~~~
      |     free
../hiro/core/../gtk/browser-window.cpp:89:3: error: 'gtk_widget_destroy' was not declared in this scope
   89 |   gtk_widget_destroy(dialog);
      |   ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:10:
../hiro/core/../gtk/message-window.cpp: At global scope:
../hiro/core/../gtk/message-window.cpp:5:50: error: 'GtkMessageType' has not been declared
    5 | static auto Message(MessageWindow::State& state, GtkMessageType messageStyle) -> MessageWindow::Response {
      |                                                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp: In function 'hiro::MessageWindow::Response hiro::Message(MessageWindow::State&, int)':
../hiro/core/../gtk/message-window.cpp:6:3: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    6 |   GtkWidget* dialog = gtk_message_dialog_new(
      |   ^~~~~~~~~
      |   wWidget
../hiro/core/../gtk/message-window.cpp:6:14: error: 'dialog' was not declared in this scope
    6 |   GtkWidget* dialog = gtk_message_dialog_new(
      |              ^~~~~~
../hiro/core/../gtk/message-window.cpp:7:77: error: 'struct hiro::pWindow' has no member named 'widget'
    7 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                             ^~~~~~
../hiro/core/../gtk/message-window.cpp:7:44: error: 'GTK_WINDOW' was not declared in this scope
    7 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                            ^~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:7:88: error: 'GtkWindow' was not declared in this scope; did you mean 'wWindow'?
    7 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                        ^~~~~~~~~
      |                                                                                        wWindow
../hiro/core/../gtk/message-window.cpp:7:98: error: expected primary-expression before ')' token
    7 |     state.parent && state.parent->self() ? GTK_WINDOW(state.parent->self()->widget) : (GtkWindow*)nullptr,
      |                                                                                                  ^
../hiro/core/../gtk/message-window.cpp:8:5: error: 'GTK_DIALOG_MODAL' was not declared in this scope
    8 |     GTK_DIALOG_MODAL, messageStyle, GTK_BUTTONS_NONE, "%s", (const char*)state.text
      |     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:8:37: error: 'GTK_BUTTONS_NONE' was not declared in this scope
    8 |     GTK_DIALOG_MODAL, messageStyle, GTK_BUTTONS_NONE, "%s", (const char*)state.text
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:6:23: error: 'gtk_message_dialog_new' was not declared in this scope
    6 |   GtkWidget* dialog = gtk_message_dialog_new(
      |                       ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:11:19: error: 'gtk_window_set_title' was not declared in this scope
   11 |   if(state.title) gtk_window_set_title(GTK_WINDOW(dialog), state.title);
      |                   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:12:38: error: 'gtk_window_set_title' was not declared in this scope
   12 |   else if(Application::state().name) gtk_window_set_title(GTK_WINDOW(dialog), Application::state().name);
      |                                      ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:16:28: error: 'GTK_DIALOG' was not declared in this scope
   16 |     gtk_dialog_add_buttons(GTK_DIALOG(dialog), "Ok", GTK_RESPONSE_OK, nullptr);
      |                            ^~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:16:54: error: 'GTK_RESPONSE_OK' was not declared in this scope
   16 |     gtk_dialog_add_buttons(GTK_DIALOG(dialog), "Ok", GTK_RESPONSE_OK, nullptr);
      |                                                      ^~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:16:5: error: 'gtk_dialog_add_buttons' was not declared in this scope
   16 |     gtk_dialog_add_buttons(GTK_DIALOG(dialog), "Ok", GTK_RESPONSE_OK, nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:19:81: error: 'GTK_RESPONSE_CANCEL' was not declared in this scope
   19 |     gtk_dialog_add_buttons(GTK_DIALOG(dialog), "Ok", GTK_RESPONSE_OK, "Cancel", GTK_RESPONSE_CANCEL, nullptr);
      |                                                                                 ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:22:55: error: 'GTK_RESPONSE_YES' was not declared in this scope
   22 |     gtk_dialog_add_buttons(GTK_DIALOG(dialog), "Yes", GTK_RESPONSE_YES, "No", GTK_RESPONSE_NO, nullptr);
      |                                                       ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:22:79: error: 'GTK_RESPONSE_NO' was not declared in this scope
   22 |     gtk_dialog_add_buttons(GTK_DIALOG(dialog), "Yes", GTK_RESPONSE_YES, "No", GTK_RESPONSE_NO, nullptr);
      |                                                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:29:34: error: 'GTK_DIALOG' was not declared in this scope
   29 |   auto response = gtk_dialog_run(GTK_DIALOG(dialog));
      |                                  ^~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:29:19: error: 'gtk_dialog_run' was not declared in this scope
   29 |   auto response = gtk_dialog_run(GTK_DIALOG(dialog));
      |                   ^~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:30:3: error: 'gtk_widget_destroy' was not declared in this scope
   30 |   gtk_widget_destroy(dialog);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:32:18: error: 'GTK_RESPONSE_OK' was not declared in this scope
   32 |   if(response == GTK_RESPONSE_OK) return MessageWindow::Response::Ok;
      |                  ^~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:33:18: error: 'GTK_RESPONSE_CANCEL' was not declared in this scope
   33 |   if(response == GTK_RESPONSE_CANCEL) return MessageWindow::Response::Cancel;
      |                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:34:18: error: 'GTK_RESPONSE_YES' was not declared in this scope
   34 |   if(response == GTK_RESPONSE_YES) return MessageWindow::Response::Yes;
      |                  ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp:35:18: error: 'GTK_RESPONSE_NO' was not declared in this scope
   35 |   if(response == GTK_RESPONSE_NO) return MessageWindow::Response::No;
      |                  ^~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp: In static member function 'static hiro::MessageWindow::Response hiro::pMessageWindow::error(hiro::MessageWindow::State&)':
../hiro/core/../gtk/message-window.cpp:47:25: error: 'GTK_MESSAGE_ERROR' was not declared in this scope
   47 |   return Message(state, GTK_MESSAGE_ERROR);
      |                         ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp: In static member function 'static hiro::MessageWindow::Response hiro::pMessageWindow::information(hiro::MessageWindow::State&)':
../hiro/core/../gtk/message-window.cpp:51:25: error: 'GTK_MESSAGE_INFO' was not declared in this scope
   51 |   return Message(state, GTK_MESSAGE_INFO);
      |                         ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp: In static member function 'static hiro::MessageWindow::Response hiro::pMessageWindow::question(hiro::MessageWindow::State&)':
../hiro/core/../gtk/message-window.cpp:55:25: error: 'GTK_MESSAGE_QUESTION' was not declared in this scope
   55 |   return Message(state, GTK_MESSAGE_QUESTION);
      |                         ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/message-window.cpp: In static member function 'static hiro::MessageWindow::Response hiro::pMessageWindow::warning(hiro::MessageWindow::State&)':
../hiro/core/../gtk/message-window.cpp:59:25: error: 'GTK_MESSAGE_WARNING' was not declared in this scope
   59 |   return Message(state, GTK_MESSAGE_WARNING);
      |                         ^~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:15:
../hiro/core/../gtk/timer.cpp: In function 'int hiro::Timer_trigger(pTimer*)':
../hiro/core/../gtk/timer.cpp:14:41: error: 'GSourceFunc' was not declared in this scope
   14 |     g_timeout_add(p->state().interval, (GSourceFunc)Timer_trigger, (gpointer)p);
      |                                         ^~~~~~~~~~~
../hiro/core/../gtk/timer.cpp:14:69: error: 'gpointer' was not declared in this scope
   14 |     g_timeout_add(p->state().interval, (GSourceFunc)Timer_trigger, (gpointer)p);
      |                                                                     ^~~~~~~~
../hiro/core/../gtk/timer.cpp:14:5: error: 'g_timeout_add' was not declared in this scope
   14 |     g_timeout_add(p->state().interval, (GSourceFunc)Timer_trigger, (gpointer)p);
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/timer.cpp: In member function 'virtual void hiro::pTimer::setEnabled(bool)':
../hiro/core/../gtk/timer.cpp:29:38: error: 'GSourceFunc' was not declared in this scope
   29 |     g_timeout_add(state().interval, (GSourceFunc)Timer_trigger, (gpointer)this);
      |                                      ^~~~~~~~~~~
../hiro/core/../gtk/timer.cpp:29:66: error: 'gpointer' was not declared in this scope
   29 |     g_timeout_add(state().interval, (GSourceFunc)Timer_trigger, (gpointer)this);
      |                                                                  ^~~~~~~~
../hiro/core/../gtk/timer.cpp:29:5: error: 'g_timeout_add' was not declared in this scope
   29 |     g_timeout_add(state().interval, (GSourceFunc)Timer_trigger, (gpointer)this);
      |     ^~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:16:
../hiro/core/../gtk/window.cpp: At global scope:
../hiro/core/../gtk/window.cpp:5:26: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                          ^~~~~~~~~
      |                          wWidget
../hiro/core/../gtk/window.cpp:5:37: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                     ^~~~~~
      |                                     Widget
../hiro/core/../gtk/window.cpp:5:45: error: 'GdkEvent' was not declared in this scope
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                             ^~~~~~~~
../hiro/core/../gtk/window.cpp:5:55: error: 'event' was not declared in this scope; did you mean 'servent'?
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                       ^~~~~
      |                                                       servent
../hiro/core/../gtk/window.cpp:5:69: error: expected primary-expression before '*' token
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                     ^
../hiro/core/../gtk/window.cpp:5:71: error: 'p' was not declared in this scope
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                       ^
../hiro/core/../gtk/window.cpp:5:72: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                        ^
../hiro/core/../gtk/window.cpp:5:74: error: expected ',' or ';' before '->' token
    5 | static auto Window_close(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                          ^~
../hiro/core/../gtk/window.cpp:16:25: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                         ^~~~~~~~~
      |                         wWidget
../hiro/core/../gtk/window.cpp:16:36: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                    ^~~~~~
      |                                    Widget
../hiro/core/../gtk/window.cpp:16:44: error: 'cairo_t' was not declared in this scope
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                            ^~~~~~~
../hiro/core/../gtk/window.cpp:16:53: error: 'context' was not declared in this scope; did you mean 'ucontext'?
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                                     ^~~~~~~
      |                                                     ucontext
../hiro/core/../gtk/window.cpp:16:69: error: expected primary-expression before '*' token
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                                                     ^
../hiro/core/../gtk/window.cpp:16:71: error: 'p' was not declared in this scope
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                                                       ^
../hiro/core/../gtk/window.cpp:16:72: error: expression list treated as compound expression in initializer [-fpermissive]
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                                                        ^
../hiro/core/../gtk/window.cpp:16:74: error: expected ',' or ';' before '->' token
   16 | static auto Window_draw(GtkWidget* widget, cairo_t* context, pWindow* p) -> signed {
      |                                                                          ^~
../hiro/core/../gtk/window.cpp:46:27: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                           ^~~~~~~~~
      |                           wWidget
../hiro/core/../gtk/window.cpp:46:38: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                      ^~~~~~
      |                                      Widget
../hiro/core/../gtk/window.cpp:46:46: error: 'GdkEvent' was not declared in this scope
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                              ^~~~~~~~
../hiro/core/../gtk/window.cpp:46:56: error: 'event' was not declared in this scope; did you mean 'servent'?
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                        ^~~~~
      |                                                        servent
../hiro/core/../gtk/window.cpp:46:70: error: expected primary-expression before '*' token
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                      ^
../hiro/core/../gtk/window.cpp:46:72: error: 'p' was not declared in this scope
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                        ^
../hiro/core/../gtk/window.cpp:46:73: error: expression list treated as compound expression in initializer [-fpermissive]
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                         ^
../hiro/core/../gtk/window.cpp:46:75: error: expected ',' or ';' before '->' token
   46 | static auto Window_expose(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                           ^~
../hiro/core/../gtk/window.cpp:53:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/window.cpp:53:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/window.cpp:53:49: error: 'GdkEvent' was not declared in this scope
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                 ^~~~~~~~
../hiro/core/../gtk/window.cpp:53:59: error: 'event' was not declared in this scope; did you mean 'servent'?
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                           ^~~~~
      |                                                           servent
../hiro/core/../gtk/window.cpp:53:73: error: expected primary-expression before '*' token
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                         ^
../hiro/core/../gtk/window.cpp:53:75: error: 'p' was not declared in this scope
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                           ^
../hiro/core/../gtk/window.cpp:53:76: error: expression list treated as compound expression in initializer [-fpermissive]
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                            ^
../hiro/core/../gtk/window.cpp:53:78: error: expected ',' or ';' before '->' token
   53 | static auto Window_configure(GtkWidget* widget, GdkEvent* event, pWindow* p) -> signed {
      |                                                                              ^~
../hiro/core/../gtk/window.cpp:58:25: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   58 | static auto Window_drop(GtkWidget* widget, GdkDragContext* context, signed x, signed y,
      |                         ^~~~~~~~~
      |                         wWidget
../hiro/core/../gtk/window.cpp:58:36: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   58 | static auto Window_drop(GtkWidget* widget, GdkDragContext* context, signed x, signed y,
      |                                    ^~~~~~
      |                                    Widget
../hiro/core/../gtk/window.cpp:58:44: error: 'GdkDragContext' was not declared in this scope
   58 | static auto Window_drop(GtkWidget* widget, GdkDragContext* context, signed x, signed y,
      |                                            ^~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:58:60: error: 'context' was not declared in this scope; did you mean 'ucontext'?
   58 | static auto Window_drop(GtkWidget* widget, GdkDragContext* context, signed x, signed y,
      |                                                            ^~~~~~~
      |                                                            ucontext
../hiro/core/../gtk/window.cpp:58:69: error: expected primary-expression before 'signed'
   58 | static auto Window_drop(GtkWidget* widget, GdkDragContext* context, signed x, signed y,
      |                                                                     ^~~~~~
../hiro/core/../gtk/window.cpp:58:79: error: expected primary-expression before 'signed'
   58 | static auto Window_drop(GtkWidget* widget, GdkDragContext* context, signed x, signed y,
      |                                                                               ^~~~~~
../hiro/core/../gtk/window.cpp:59:1: error: 'GtkSelectionData' was not declared in this scope
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      | ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:59:19: error: 'data' was not declared in this scope
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                   ^~~~
../hiro/core/../gtk/window.cpp:59:25: error: expected primary-expression before 'unsigned'
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                         ^~~~~~~~
../hiro/core/../gtk/window.cpp:59:40: error: expected primary-expression before 'unsigned'
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                                        ^~~~~~~~
../hiro/core/../gtk/window.cpp:59:67: error: expected primary-expression before '*' token
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                                                                   ^
../hiro/core/../gtk/window.cpp:59:69: error: 'p' was not declared in this scope
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                                                                     ^
../hiro/core/../gtk/window.cpp:59:70: error: expression list treated as compound expression in initializer [-fpermissive]
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                                                                      ^
../hiro/core/../gtk/window.cpp:59:72: error: expected ',' or ';' before '->' token
   59 | GtkSelectionData* data, unsigned type, unsigned timestamp, pWindow* p) -> void {
      |                                                                        ^~
../hiro/core/../gtk/window.cpp:66:38: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   66 | static auto Window_getPreferredWidth(GtkWidget* widget, int* minimalWidth, int* naturalWidth) -> void {
      |                                      ^~~~~~~~~
      |                                      wWidget
../hiro/core/../gtk/window.cpp:66:49: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   66 | static auto Window_getPreferredWidth(GtkWidget* widget, int* minimalWidth, int* naturalWidth) -> void {
      |                                                 ^~~~~~
      |                                                 Widget
../hiro/core/../gtk/window.cpp:66:57: error: expected primary-expression before 'int'
   66 | static auto Window_getPreferredWidth(GtkWidget* widget, int* minimalWidth, int* naturalWidth) -> void {
      |                                                         ^~~
../hiro/core/../gtk/window.cpp:66:76: error: expected primary-expression before 'int'
   66 | static auto Window_getPreferredWidth(GtkWidget* widget, int* minimalWidth, int* naturalWidth) -> void {
      |                                                                            ^~~
../hiro/core/../gtk/window.cpp:66:93: error: expression list treated as compound expression in initializer [-fpermissive]
   66 | static auto Window_getPreferredWidth(GtkWidget* widget, int* minimalWidth, int* naturalWidth) -> void {
      |                                                                                             ^
../hiro/core/../gtk/window.cpp:66:95: error: expected ',' or ';' before '->' token
   66 | static auto Window_getPreferredWidth(GtkWidget* widget, int* minimalWidth, int* naturalWidth) -> void {
      |                                                                                               ^~
../hiro/core/../gtk/window.cpp:73:39: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   73 | static auto Window_getPreferredHeight(GtkWidget* widget, int* minimalHeight, int* naturalHeight) -> void {
      |                                       ^~~~~~~~~
      |                                       wWidget
../hiro/core/../gtk/window.cpp:73:50: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   73 | static auto Window_getPreferredHeight(GtkWidget* widget, int* minimalHeight, int* naturalHeight) -> void {
      |                                                  ^~~~~~
      |                                                  Widget
../hiro/core/../gtk/window.cpp:73:58: error: expected primary-expression before 'int'
   73 | static auto Window_getPreferredHeight(GtkWidget* widget, int* minimalHeight, int* naturalHeight) -> void {
      |                                                          ^~~
../hiro/core/../gtk/window.cpp:73:78: error: expected primary-expression before 'int'
   73 | static auto Window_getPreferredHeight(GtkWidget* widget, int* minimalHeight, int* naturalHeight) -> void {
      |                                                                              ^~~
../hiro/core/../gtk/window.cpp:73:96: error: expression list treated as compound expression in initializer [-fpermissive]
   73 | static auto Window_getPreferredHeight(GtkWidget* widget, int* minimalHeight, int* naturalHeight) -> void {
      |                                                                                                ^
../hiro/core/../gtk/window.cpp:73:98: error: expected ',' or ';' before '->' token
   73 | static auto Window_getPreferredHeight(GtkWidget* widget, int* minimalHeight, int* naturalHeight) -> void {
      |                                                                                                  ^~
../hiro/core/../gtk/window.cpp:80:29: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                             ^~~~~~~~~
      |                             wWidget
../hiro/core/../gtk/window.cpp:80:40: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                        ^~~~~~
      |                                        Widget
../hiro/core/../gtk/window.cpp:80:48: error: 'GdkEventKey' was not declared in this scope
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                ^~~~~~~~~~~
../hiro/core/../gtk/window.cpp:80:61: error: 'event' was not declared in this scope; did you mean 'servent'?
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                             ^~~~~
      |                                                             servent
../hiro/core/../gtk/window.cpp:80:75: error: expected primary-expression before '*' token
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                           ^
../hiro/core/../gtk/window.cpp:80:77: error: 'p' was not declared in this scope
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                             ^
../hiro/core/../gtk/window.cpp:80:78: error: expression list treated as compound expression in initializer [-fpermissive]
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                              ^
../hiro/core/../gtk/window.cpp:80:80: error: expected ',' or ';' before '->' token
   80 | static auto Window_keyPress(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                                ^~
../hiro/core/../gtk/window.cpp:95:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/window.cpp:95:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/window.cpp:95:50: error: 'GdkEventKey' was not declared in this scope
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                  ^~~~~~~~~~~
../hiro/core/../gtk/window.cpp:95:63: error: 'event' was not declared in this scope; did you mean 'servent'?
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                               ^~~~~
      |                                                               servent
../hiro/core/../gtk/window.cpp:95:77: error: expected primary-expression before '*' token
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                             ^
../hiro/core/../gtk/window.cpp:95:79: error: 'p' was not declared in this scope
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/window.cpp:95:80: error: expression list treated as compound expression in initializer [-fpermissive]
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                                ^
../hiro/core/../gtk/window.cpp:95:82: error: expected ',' or ';' before '->' token
   95 | static auto Window_keyRelease(GtkWidget* widget, GdkEventKey* event, pWindow* p) -> signed {
      |                                                                                  ^~
../hiro/core/../gtk/window.cpp:102:28: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
  102 | static auto Window_realize(GtkWidget* widget, pWindow* p) -> void {
      |                            ^~~~~~~~~
      |                            wWidget
../hiro/core/../gtk/window.cpp:102:39: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  102 | static auto Window_realize(GtkWidget* widget, pWindow* p) -> void {
      |                                       ^~~~~~
      |                                       Widget
../hiro/core/../gtk/window.cpp:102:54: error: expected primary-expression before '*' token
  102 | static auto Window_realize(GtkWidget* widget, pWindow* p) -> void {
      |                                                      ^
../hiro/core/../gtk/window.cpp:102:56: error: 'p' was not declared in this scope
  102 | static auto Window_realize(GtkWidget* widget, pWindow* p) -> void {
      |                                                        ^
../hiro/core/../gtk/window.cpp:102:57: error: expression list treated as compound expression in initializer [-fpermissive]
  102 | static auto Window_realize(GtkWidget* widget, pWindow* p) -> void {
      |                                                         ^
../hiro/core/../gtk/window.cpp:102:59: error: expected ',' or ';' before '->' token
  102 | static auto Window_realize(GtkWidget* widget, pWindow* p) -> void {
      |                                                           ^~
../hiro/core/../gtk/window.cpp:105:33: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                 ^~~~~~~~~
      |                                 wWidget
../hiro/core/../gtk/window.cpp:105:44: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                            ^~~~~~
      |                                            Widget
../hiro/core/../gtk/window.cpp:105:52: error: 'GtkAllocation' was not declared in this scope
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                                    ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:105:67: error: 'allocation' was not declared in this scope
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                                                   ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:105:86: error: expected primary-expression before '*' token
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                                                                      ^
../hiro/core/../gtk/window.cpp:105:88: error: 'p' was not declared in this scope
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                                                                        ^
../hiro/core/../gtk/window.cpp:105:89: error: expression list treated as compound expression in initializer [-fpermissive]
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                                                                         ^
../hiro/core/../gtk/window.cpp:105:91: error: expected ',' or ';' before '->' token
  105 | static auto Window_sizeAllocate(GtkWidget* widget, GtkAllocation* allocation, pWindow* p) -> void {
      |                                                                                           ^~
../hiro/core/../gtk/window.cpp:112:32: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                ^~~~~~~~~
      |                                wWidget
../hiro/core/../gtk/window.cpp:112:43: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                           ^~~~~~
      |                                           Widget
../hiro/core/../gtk/window.cpp:112:51: error: 'GtkRequisition' was not declared in this scope
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                                   ^~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:112:67: error: 'requisition' was not declared in this scope
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                                                   ^~~~~~~~~~~
../hiro/core/../gtk/window.cpp:112:87: error: expected primary-expression before '*' token
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                                                                       ^
../hiro/core/../gtk/window.cpp:112:89: error: 'p' was not declared in this scope
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                                                                         ^
../hiro/core/../gtk/window.cpp:112:90: error: expression list treated as compound expression in initializer [-fpermissive]
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                                                                          ^
../hiro/core/../gtk/window.cpp:112:92: error: expected ',' or ';' before '->' token
  112 | static auto Window_sizeRequest(GtkWidget* widget, GtkRequisition* requisition, pWindow* p) -> void {
      |                                                                                            ^~
../hiro/core/../gtk/window.cpp:117:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/window.cpp:117:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/window.cpp:117:50: error: 'GdkEvent' was not declared in this scope
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                                  ^~~~~~~~
../hiro/core/../gtk/window.cpp:117:60: error: 'event' was not declared in this scope; did you mean 'servent'?
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                                            ^~~~~
      |                                                            servent
../hiro/core/../gtk/window.cpp:117:74: error: expected primary-expression before '*' token
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                                                          ^
../hiro/core/../gtk/window.cpp:117:76: error: 'p' was not declared in this scope
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                                                            ^
../hiro/core/../gtk/window.cpp:117:77: error: expression list treated as compound expression in initializer [-fpermissive]
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                                                             ^
../hiro/core/../gtk/window.cpp:117:79: error: expected ',' or ';' before '->' token
  117 | static auto Window_stateEvent(GtkWidget* widget, GdkEvent* event, pWindow* p) -> void {
      |                                                                               ^~
../hiro/core/../gtk/window.cpp:131:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
  131 | static auto Window_unrealize(GtkWidget* widget, pWindow* p) -> void {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/window.cpp:131:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  131 | static auto Window_unrealize(GtkWidget* widget, pWindow* p) -> void {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/window.cpp:131:56: error: expected primary-expression before '*' token
  131 | static auto Window_unrealize(GtkWidget* widget, pWindow* p) -> void {
      |                                                        ^
../hiro/core/../gtk/window.cpp:131:58: error: 'p' was not declared in this scope
  131 | static auto Window_unrealize(GtkWidget* widget, pWindow* p) -> void {
      |                                                          ^
../hiro/core/../gtk/window.cpp:131:59: error: expression list treated as compound expression in initializer [-fpermissive]
  131 | static auto Window_unrealize(GtkWidget* widget, pWindow* p) -> void {
      |                                                           ^
../hiro/core/../gtk/window.cpp:131:61: error: expected ',' or ';' before '->' token
  131 | static auto Window_unrealize(GtkWidget* widget, pWindow* p) -> void {
      |                                                             ^~
../hiro/core/../gtk/window.cpp: In member function 'virtual void hiro::pWindow::construct()':
../hiro/core/../gtk/window.cpp:135:3: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  135 |   widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      |   ^~~~~~
      |   Widget
../hiro/core/../gtk/window.cpp:135:27: error: 'GTK_WINDOW_TOPLEVEL' was not declared in this scope
  135 |   widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      |                           ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:135:12: error: 'gtk_window_new' was not declared in this scope
  135 |   widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      |            ^~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:136:28: error: 'GTK_WINDOW' was not declared in this scope
  136 |   gtk_window_set_resizable(GTK_WINDOW(widget), true);
      |                            ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:136:3: error: 'gtk_window_set_resizable' was not declared in this scope
  136 |   gtk_window_set_resizable(GTK_WINDOW(widget), true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:144:44: error: 'gdk_screen_get_default' was not declared in this scope
  144 |   auto visual = gdk_screen_get_rgba_visual(gdk_screen_get_default());
      |                                            ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:144:17: error: 'gdk_screen_get_rgba_visual' was not declared in this scope
  144 |   auto visual = gdk_screen_get_rgba_visual(gdk_screen_get_default());
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:145:24: error: 'gdk_screen_get_system_visual' was not declared in this scope
  145 |   if(!visual) visual = gdk_screen_get_system_visual(gdk_screen_get_default());
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:146:14: error: 'gtk_widget_set_visual' was not declared in this scope
  146 |   if(visual) gtk_widget_set_visual(widget, visual);
      |              ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:148:3: error: 'gtk_widget_set_app_paintable' was not declared in this scope
  148 |   gtk_widget_set_app_paintable(widget, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:149:33: error: 'GDK_CONFIGURE' was not declared in this scope
  149 |   gtk_widget_add_events(widget, GDK_CONFIGURE);
      |                                 ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:149:3: error: 'gtk_widget_add_events' was not declared in this scope
  149 |   gtk_widget_add_events(widget, GDK_CONFIGURE);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:154:3: error: 'menuContainer' was not declared in this scope
  154 |   menuContainer = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:154:31: error: 'GTK_ORIENTATION_VERTICAL' was not declared in this scope
  154 |   menuContainer = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:154:19: error: 'gtk_box_new' was not declared in this scope
  154 |   menuContainer = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
      |                   ^~~~~~~~~~~
../hiro/core/../gtk/window.cpp:156:21: error: 'GTK_CONTAINER' was not declared in this scope
  156 |   gtk_container_add(GTK_CONTAINER(widget), menuContainer);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:156:3: error: 'gtk_container_add' was not declared in this scope
  156 |   gtk_container_add(GTK_CONTAINER(widget), menuContainer);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:157:3: error: 'gtk_widget_show' was not declared in this scope
  157 |   gtk_widget_show(menuContainer);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:159:3: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
  159 |   gtkMenu = gtk_menu_bar_new();
      |   ^~~~~~~
      |   wMenu
../hiro/core/../gtk/window.cpp:159:13: error: 'gtk_menu_bar_new' was not declared in this scope
  159 |   gtkMenu = gtk_menu_bar_new();
      |             ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:160:22: error: 'GTK_BOX' was not declared in this scope
  160 |   gtk_box_pack_start(GTK_BOX(menuContainer), gtkMenu, false, false, 0);
      |                      ^~~~~~~
../hiro/core/../gtk/window.cpp:160:3: error: 'gtk_box_pack_start' was not declared in this scope
  160 |   gtk_box_pack_start(GTK_BOX(menuContainer), gtkMenu, false, false, 0);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:162:3: error: 'formContainer' was not declared in this scope
  162 |   formContainer = gtk_fixed_new();
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:162:19: error: 'gtk_fixed_new' was not declared in this scope
  162 |   formContainer = gtk_fixed_new();
      |                   ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:166:3: error: 'statusContainer' was not declared in this scope
  166 |   statusContainer = gtk_event_box_new();
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:166:21: error: 'gtk_event_box_new' was not declared in this scope
  166 |   statusContainer = gtk_event_box_new();
      |                     ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:167:3: error: 'gtkStatus' was not declared in this scope
  167 |   gtkStatus = gtk_statusbar_new();
      |   ^~~~~~~~~
../hiro/core/../gtk/window.cpp:167:15: error: 'gtk_statusbar_new' was not declared in this scope
  167 |   gtkStatus = gtk_statusbar_new();
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:171:3: error: 'gtk_window_set_has_resize_grip' was not declared in this scope
  171 |   gtk_window_set_has_resize_grip(GTK_WINDOW(widget), true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:185:20: error: 'G_OBJECT' was not declared in this scope
  185 |   g_signal_connect(G_OBJECT(widget), "delete-event", G_CALLBACK(Window_close), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/window.cpp:185:54: error: 'G_CALLBACK' was not declared in this scope
  185 |   g_signal_connect(G_OBJECT(widget), "delete-event", G_CALLBACK(Window_close), (gpointer)this);
      |                                                      ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:185:81: error: 'gpointer' was not declared in this scope
  185 |   g_signal_connect(G_OBJECT(widget), "delete-event", G_CALLBACK(Window_close), (gpointer)this);
      |                                                                                 ^~~~~~~~
../hiro/core/../gtk/window.cpp:185:3: error: 'g_signal_connect' was not declared in this scope
  185 |   g_signal_connect(G_OBJECT(widget), "delete-event", G_CALLBACK(Window_close), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:189:81: error: expected ')' before 'this'
  189 |   g_signal_connect(G_OBJECT(widget), "draw", G_CALLBACK(Window_draw), (gpointer)this);
      |                   ~                                                             ^~~~
      |                                                                                 )
../hiro/core/../gtk/window.cpp:191:97: error: expected ')' before 'this'
  191 |   g_signal_connect(G_OBJECT(widget), "configure-event", G_CALLBACK(Window_configure), (gpointer)this);
      |                   ~                                                                             ^~~~
      |                                                                                                 )
../hiro/core/../gtk/window.cpp:192:95: error: expected ')' before 'this'
  192 |   g_signal_connect(G_OBJECT(widget), "drag-data-received", G_CALLBACK(Window_drop), (gpointer)this);
      |                   ~                                                                           ^~~~
      |                                                                                               )
../hiro/core/../gtk/window.cpp:193:96: error: expected ')' before 'this'
  193 |   g_signal_connect(G_OBJECT(widget), "key-press-event", G_CALLBACK(Window_keyPress), (gpointer)this);
      |                   ~                                                                            ^~~~
      |                                                                                                )
../hiro/core/../gtk/window.cpp:194:100: error: expected ')' before 'this'
  194 |   g_signal_connect(G_OBJECT(widget), "key-release-event", G_CALLBACK(Window_keyRelease), (gpointer)this);
      |                   ~                                                                                ^~~~
      |                                                                                                    )
../hiro/core/../gtk/window.cpp:195:87: error: expected ')' before 'this'
  195 |   g_signal_connect(G_OBJECT(widget), "realize", G_CALLBACK(Window_realize), (gpointer)this);
      |                   ~                                                                   ^~~~
      |                                                                                       )
../hiro/core/../gtk/window.cpp:196:105: error: expected ')' before 'this'
  196 |   g_signal_connect(G_OBJECT(formContainer), "size-allocate", G_CALLBACK(Window_sizeAllocate), (gpointer)this);
      |                   ~                                                                                     ^~~~
      |                                                                                                         )
../hiro/core/../gtk/window.cpp:200:22: error: 'GTK_WIDGET_GET_CLASS' was not declared in this scope
  200 |   auto widgetClass = GTK_WIDGET_GET_CLASS(formContainer);
      |                      ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:204:91: error: expected ')' before 'this'
  204 |   g_signal_connect(G_OBJECT(widget), "unrealize", G_CALLBACK(Window_unrealize), (gpointer)this);
      |                   ~                                                                       ^~~~
      |                                                                                           )
../hiro/core/../gtk/window.cpp:205:101: error: expected ')' before 'this'
  205 |   g_signal_connect(G_OBJECT(widget), "window-state-event", G_CALLBACK(Window_stateEvent), (gpointer)this);
      |                   ~                                                                                 ^~~~
      |                                                                                                     )
../hiro/core/../gtk/window.cpp:207:65: error: expected ')' before 'this'
  207 |   g_object_set_data(G_OBJECT(widget), "hiro::window", (gpointer)this);
      |                    ~                                            ^~~~
      |                                                                 )
../hiro/core/../gtk/window.cpp:207:3: error: 'g_object_set_data' was not declared in this scope
  207 |   g_object_set_data(G_OBJECT(widget), "hiro::window", (gpointer)this);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:208:72: error: expected ')' before 'this'
  208 |   g_object_set_data(G_OBJECT(formContainer), "hiro::window", (gpointer)this);
      |                    ~                                                   ^~~~
      |                                                                        )
../hiro/core/../gtk/window.cpp: In member function 'virtual void hiro::pWindow::destruct()':
../hiro/core/../gtk/window.cpp:221:22: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  221 |   gtk_widget_destroy(widget);
      |                      ^~~~~~
      |                      Widget
../hiro/core/../gtk/window.cpp:221:3: error: 'gtk_widget_destroy' was not declared in this scope
  221 |   gtk_widget_destroy(widget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'virtual bool hiro::pWindow::focused() const':
../hiro/core/../gtk/window.cpp:241:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  241 |   return gtk_window_is_active(GTK_WINDOW(widget));
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/window.cpp:241:31: error: 'GTK_WINDOW' was not declared in this scope
  241 |   return gtk_window_is_active(GTK_WINDOW(widget));
      |                               ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:241:10: error: 'gtk_window_is_active' was not declared in this scope
  241 |   return gtk_window_is_active(GTK_WINDOW(widget));
      |          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'uint hiro::pWindow::monitor() const':
../hiro/core/../gtk/window.cpp:271:31: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  271 |   if(!gtk_widget_get_realized(widget)) return 0;
      |                               ^~~~~~
      |                               Widget
../hiro/core/../gtk/window.cpp:271:7: error: 'gtk_widget_get_realized' was not declared in this scope
  271 |   if(!gtk_widget_get_realized(widget)) return 0;
      |       ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:272:39: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  272 |   auto window = gtk_widget_get_window(widget);
      |                                       ^~~~~~
      |                                       Widget
../hiro/core/../gtk/window.cpp:272:17: error: 'gtk_widget_get_window' was not declared in this scope
  272 |   auto window = gtk_widget_get_window(widget);
      |                 ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:273:43: error: 'gdk_screen_get_default' was not declared in this scope
  273 |   return gdk_screen_get_monitor_at_window(gdk_screen_get_default(), window);
      |                                           ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:273:10: error: 'gdk_screen_get_monitor_at_window' was not declared in this scope
  273 |   return gdk_screen_get_monitor_at_window(gdk_screen_get_default(), window);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/window.cpp:288:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
  288 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/window.cpp:289:24: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  289 |   gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                        ^~~~~~
      |                        Widget
../hiro/core/../gtk/window.cpp:289:32: error: 'GTK_STATE_NORMAL' was not declared in this scope
  289 |   gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:289:59: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
  289 |   gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                           ^~~~~~~~
      |                                                           Color
../hiro/core/../gtk/window.cpp:289:3: error: 'gtk_widget_modify_bg' was not declared in this scope
  289 |   gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setDroppable(bool)':
../hiro/core/../gtk/window.cpp:296:21: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  296 |   gtk_drag_dest_set(widget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |                     ^~~~~~
      |                     Widget
../hiro/core/../gtk/window.cpp:296:29: error: 'GTK_DEST_DEFAULT_ALL' was not declared in this scope
  296 |   gtk_drag_dest_set(widget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |                             ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:296:63: error: 'GDK_ACTION_COPY' was not declared in this scope
  296 |   gtk_drag_dest_set(widget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |                                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:296:3: error: 'gtk_drag_dest_set' was not declared in this scope
  296 |   gtk_drag_dest_set(widget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:297:17: error: 'gtk_drag_dest_add_uri_targets' was not declared in this scope
  297 |   if(droppable) gtk_drag_dest_add_uri_targets(widget);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'virtual void hiro::pWindow::setFocused()':
../hiro/core/../gtk/window.cpp:311:33: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  311 |   gtk_window_present(GTK_WINDOW(widget));
      |                                 ^~~~~~
      |                                 Widget
../hiro/core/../gtk/window.cpp:311:22: error: 'GTK_WINDOW' was not declared in this scope
  311 |   gtk_window_present(GTK_WINDOW(widget));
      |                      ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:311:3: error: 'gtk_window_present' was not declared in this scope
  311 |   gtk_window_present(GTK_WINDOW(widget));
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setFullScreen(bool)':
../hiro/core/../gtk/window.cpp:316:38: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  316 |     gtk_window_fullscreen(GTK_WINDOW(widget));
      |                                      ^~~~~~
      |                                      Widget
../hiro/core/../gtk/window.cpp:316:27: error: 'GTK_WINDOW' was not declared in this scope
  316 |     gtk_window_fullscreen(GTK_WINDOW(widget));
      |                           ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:316:5: error: 'gtk_window_fullscreen' was not declared in this scope
  316 |     gtk_window_fullscreen(GTK_WINDOW(widget));
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:318:40: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  318 |     gtk_window_unfullscreen(GTK_WINDOW(widget));
      |                                        ^~~~~~
      |                                        Widget
../hiro/core/../gtk/window.cpp:318:29: error: 'GTK_WINDOW' was not declared in this scope
  318 |     gtk_window_unfullscreen(GTK_WINDOW(widget));
      |                             ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:318:5: error: 'gtk_window_unfullscreen' was not declared in this scope
  318 |     gtk_window_unfullscreen(GTK_WINDOW(widget));
      |     ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setGeometry(hiro::Geometry)':
../hiro/core/../gtk/window.cpp:338:30: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  338 |   gtk_window_move(GTK_WINDOW(widget), geometry.x() - margin.x(), geometry.y() - margin.y());
      |                              ^~~~~~
      |                              Widget
../hiro/core/../gtk/window.cpp:338:19: error: 'GTK_WINDOW' was not declared in this scope
  338 |   gtk_window_move(GTK_WINDOW(widget), geometry.x() - margin.x(), geometry.y() - margin.y());
      |                   ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:338:3: error: 'gtk_window_move' was not declared in this scope
  338 |   gtk_window_move(GTK_WINDOW(widget), geometry.x() - margin.x(), geometry.y() - margin.y());
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:339:3: error: 'gtk_window_resize' was not declared in this scope
  339 |   gtk_window_resize(GTK_WINDOW(widget), geometry.width(), geometry.height() + _menuHeight() + _statusHeight());
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setMaximized(bool)':
../hiro/core/../gtk/window.cpp:350:36: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  350 |     gtk_window_maximize(GTK_WINDOW(widget));
      |                                    ^~~~~~
      |                                    Widget
../hiro/core/../gtk/window.cpp:350:25: error: 'GTK_WINDOW' was not declared in this scope
  350 |     gtk_window_maximize(GTK_WINDOW(widget));
      |                         ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:350:5: error: 'gtk_window_maximize' was not declared in this scope
  350 |     gtk_window_maximize(GTK_WINDOW(widget));
      |     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:352:38: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  352 |     gtk_window_unmaximize(GTK_WINDOW(widget));
      |                                      ^~~~~~
      |                                      Widget
../hiro/core/../gtk/window.cpp:352:27: error: 'GTK_WINDOW' was not declared in this scope
  352 |     gtk_window_unmaximize(GTK_WINDOW(widget));
      |                           ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:352:5: error: 'gtk_window_unmaximize' was not declared in this scope
  352 |     gtk_window_unmaximize(GTK_WINDOW(widget));
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setMaximumSize(hiro::Size)':
../hiro/core/../gtk/window.cpp:360:3: error: 'GdkGeometry' was not declared in this scope; did you mean 'setGeometry'?
  360 |   GdkGeometry geometry;
      |   ^~~~~~~~~~~
      |   setGeometry
../hiro/core/../gtk/window.cpp:362:3: error: 'geometry' was not declared in this scope; did you mean 'Geometry'?
  362 |   geometry.max_width  = !state().resizable ? state().geometry.width()  : size.width()  ? size.width()  : 32767;
      |   ^~~~~~~~
      |   Geometry
../hiro/core/../gtk/window.cpp:364:44: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  364 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MAX_SIZE);
      |                                            ^~~~~~
      |                                            Widget
../hiro/core/../gtk/window.cpp:364:33: error: 'GTK_WINDOW' was not declared in this scope
  364 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MAX_SIZE);
      |                                 ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:364:73: error: 'GDK_HINT_MAX_SIZE' was not declared in this scope
  364 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MAX_SIZE);
      |                                                                         ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:364:3: error: 'gtk_window_set_geometry_hints' was not declared in this scope
  364 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MAX_SIZE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setMinimized(bool)':
../hiro/core/../gtk/window.cpp:370:35: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  370 |     gtk_window_iconify(GTK_WINDOW(widget));
      |                                   ^~~~~~
      |                                   Widget
../hiro/core/../gtk/window.cpp:370:24: error: 'GTK_WINDOW' was not declared in this scope
  370 |     gtk_window_iconify(GTK_WINDOW(widget));
      |                        ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:370:5: error: 'gtk_window_iconify' was not declared in this scope
  370 |     gtk_window_iconify(GTK_WINDOW(widget));
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:372:37: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  372 |     gtk_window_deiconify(GTK_WINDOW(widget));
      |                                     ^~~~~~
      |                                     Widget
../hiro/core/../gtk/window.cpp:372:26: error: 'GTK_WINDOW' was not declared in this scope
  372 |     gtk_window_deiconify(GTK_WINDOW(widget));
      |                          ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:372:5: error: 'gtk_window_deiconify' was not declared in this scope
  372 |     gtk_window_deiconify(GTK_WINDOW(widget));
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setMinimumSize(hiro::Size)':
../hiro/core/../gtk/window.cpp:380:31: error: 'formContainer' was not declared in this scope
  380 |   gtk_widget_set_size_request(formContainer, size.width(), size.height());
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:380:3: error: 'gtk_widget_set_size_request' was not declared in this scope
  380 |   gtk_widget_set_size_request(formContainer, size.width(), size.height());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:383:3: error: 'GdkGeometry' was not declared in this scope; did you mean 'setGeometry'?
  383 |   GdkGeometry geometry;
      |   ^~~~~~~~~~~
      |   setGeometry
../hiro/core/../gtk/window.cpp:385:3: error: 'geometry' was not declared in this scope; did you mean 'Geometry'?
  385 |   geometry.min_width  = !state().resizable ? state().geometry.width()  : size.width()  ? size.width()  : 1;
      |   ^~~~~~~~
      |   Geometry
../hiro/core/../gtk/window.cpp:387:44: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  387 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MIN_SIZE);  //for GTK2
      |                                            ^~~~~~
      |                                            Widget
../hiro/core/../gtk/window.cpp:387:33: error: 'GTK_WINDOW' was not declared in this scope
  387 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MIN_SIZE);  //for GTK2
      |                                 ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:387:73: error: 'GDK_HINT_MIN_SIZE' was not declared in this scope
  387 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MIN_SIZE);  //for GTK2
      |                                                                         ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:387:3: error: 'gtk_window_set_geometry_hints' was not declared in this scope
  387 |   gtk_window_set_geometry_hints(GTK_WINDOW(widget), nullptr, &geometry, GDK_HINT_MIN_SIZE);  //for GTK2
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setModal(bool)':
../hiro/core/../gtk/window.cpp:392:37: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  392 |     gtk_window_set_modal(GTK_WINDOW(widget), true);
      |                                     ^~~~~~
      |                                     Widget
../hiro/core/../gtk/window.cpp:392:26: error: 'GTK_WINDOW' was not declared in this scope
  392 |     gtk_window_set_modal(GTK_WINDOW(widget), true);
      |                          ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:392:5: error: 'gtk_window_set_modal' was not declared in this scope
  392 |     gtk_window_set_modal(GTK_WINDOW(widget), true);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setResizable(bool)':
../hiro/core/../gtk/window.cpp:406:39: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  406 |   gtk_window_set_resizable(GTK_WINDOW(widget), resizable);
      |                                       ^~~~~~
      |                                       Widget
../hiro/core/../gtk/window.cpp:406:28: error: 'GTK_WINDOW' was not declared in this scope
  406 |   gtk_window_set_resizable(GTK_WINDOW(widget), resizable);
      |                            ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:406:3: error: 'gtk_window_set_resizable' was not declared in this scope
  406 |   gtk_window_set_resizable(GTK_WINDOW(widget), resizable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:412:3: error: 'gtk_window_set_has_resize_grip' was not declared in this scope
  412 |   gtk_window_set_has_resize_grip(GTK_WINDOW(widget), resizable && statusBarVisible);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::setTitle(const nall::string&)':
../hiro/core/../gtk/window.cpp:420:35: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  420 |   gtk_window_set_title(GTK_WINDOW(widget), title ? title : " ");
      |                                   ^~~~~~
      |                                   Widget
../hiro/core/../gtk/window.cpp:420:24: error: 'GTK_WINDOW' was not declared in this scope
  420 |   gtk_window_set_title(GTK_WINDOW(widget), title ? title : " ");
      |                        ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:420:3: error: 'gtk_window_set_title' was not declared in this scope
  420 |   gtk_window_set_title(GTK_WINDOW(widget), title ? title : " ");
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'virtual void hiro::pWindow::setVisible(bool)':
../hiro/core/../gtk/window.cpp:424:26: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  424 |   gtk_widget_set_visible(widget, visible);
      |                          ^~~~~~
      |                          Widget
../hiro/core/../gtk/window.cpp:424:3: error: 'gtk_widget_set_visible' was not declared in this scope
  424 |   gtk_widget_set_visible(widget, visible);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_append(hiro::mWidget&)':
../hiro/core/../gtk/window.cpp:433:18: error: 'struct hiro::pWidget' has no member named 'gtkParent'
  433 |         pWidget->gtkParent = instance->container(widget);
      |                  ^~~~~~~~~
../hiro/core/../gtk/window.cpp:433:40: error: 'struct hiro::pWidget' has no member named 'container'
  433 |         pWidget->gtkParent = instance->container(widget);
      |                                        ^~~~~~~~~
../hiro/core/../gtk/window.cpp:436:16: error: 'struct hiro::pWidget' has no member named 'gtkParent'
  436 |       pWidget->gtkParent = formContainer;
      |                ^~~~~~~~~
../hiro/core/../gtk/window.cpp:436:28: error: 'formContainer' was not declared in this scope
  436 |       pWidget->gtkParent = formContainer;
      |                            ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:438:17: error: 'struct hiro::pWidget' has no member named 'gtkParent'
  438 |     if(pWidget->gtkParent) {
      |                 ^~~~~~~~~
../hiro/core/../gtk/window.cpp:439:40: error: 'struct hiro::pWidget' has no member named 'gtkParent'
  439 |       gtk_fixed_put(GTK_FIXED(pWidget->gtkParent), pWidget->gtkWidget, 0, 0);
      |                                        ^~~~~~~~~
../hiro/core/../gtk/window.cpp:439:21: error: 'GTK_FIXED' was not declared in this scope; did you mean 'MAP_FIXED'?
  439 |       gtk_fixed_put(GTK_FIXED(pWidget->gtkParent), pWidget->gtkWidget, 0, 0);
      |                     ^~~~~~~~~
      |                     MAP_FIXED
../hiro/core/../gtk/window.cpp:439:61: error: 'struct hiro::pWidget' has no member named 'gtkWidget'; did you mean 'pWidget'?
  439 |       gtk_fixed_put(GTK_FIXED(pWidget->gtkParent), pWidget->gtkWidget, 0, 0);
      |                                                             ^~~~~~~~~
      |                                                             pWidget
../hiro/core/../gtk/window.cpp:439:7: error: 'gtk_fixed_put' was not declared in this scope
  439 |       gtk_fixed_put(GTK_FIXED(pWidget->gtkParent), pWidget->gtkWidget, 0, 0);
      |       ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_append(hiro::mMenu&)':
../hiro/core/../gtk/window.cpp:446:42: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
  446 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), pMenu->widget);
      |                                          ^~~~~~~
      |                                          wMenu
../hiro/core/../gtk/window.cpp:446:27: error: 'GTK_MENU_SHELL' was not declared in this scope
  446 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), pMenu->widget);
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:446:59: error: 'struct hiro::pMenu' has no member named 'widget'
  446 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), pMenu->widget);
      |                                                           ^~~~~~
../hiro/core/../gtk/window.cpp:446:5: error: 'gtk_menu_shell_append' was not declared in this scope
  446 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), pMenu->widget);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'bool hiro::pWindow::_setIcon(const nall::string&)':
../hiro/core/../gtk/window.cpp:474:46: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  474 |     gtk_window_set_icon_from_file(GTK_WINDOW(widget), filename, nullptr);
      |                                              ^~~~~~
      |                                              Widget
../hiro/core/../gtk/window.cpp:474:35: error: 'GTK_WINDOW' was not declared in this scope
  474 |     gtk_window_set_icon_from_file(GTK_WINDOW(widget), filename, nullptr);
      |                                   ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:474:5: error: 'gtk_window_set_icon_from_file' was not declared in this scope
  474 |     gtk_window_set_icon_from_file(GTK_WINDOW(widget), filename, nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:483:19: error: 'CreatePixbuf' was not declared in this scope
  483 |     auto pixbuf = CreatePixbuf(icon);
      |                   ^~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:484:36: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  484 |     gtk_window_set_icon(GTK_WINDOW(widget), pixbuf);
      |                                    ^~~~~~
      |                                    Widget
../hiro/core/../gtk/window.cpp:484:25: error: 'GTK_WINDOW' was not declared in this scope
  484 |     gtk_window_set_icon(GTK_WINDOW(widget), pixbuf);
      |                         ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:484:5: error: 'gtk_window_set_icon' was not declared in this scope
  484 |     gtk_window_set_icon(GTK_WINDOW(widget), pixbuf);
      |     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:485:20: error: 'G_OBJECT' was not declared in this scope
  485 |     g_object_unref(G_OBJECT(pixbuf));
      |                    ^~~~~~~~
../hiro/core/../gtk/window.cpp:485:5: error: 'g_object_unref' was not declared in this scope
  485 |     g_object_unref(G_OBJECT(pixbuf));
      |     ^~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setMenuEnabled(bool)':
../hiro/core/../gtk/window.cpp:493:28: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
  493 |   gtk_widget_set_sensitive(gtkMenu, enabled);
      |                            ^~~~~~~
      |                            wMenu
../hiro/core/../gtk/window.cpp:493:3: error: 'gtk_widget_set_sensitive' was not declared in this scope
  493 |   gtk_widget_set_sensitive(gtkMenu, enabled);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setMenuFont(const hiro::Font&)':
../hiro/core/../gtk/window.cpp:497:18: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
  497 |   pFont::setFont(gtkMenu, font);
      |                  ^~~~~~~
      |                  wMenu
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setMenuVisible(bool)':
../hiro/core/../gtk/window.cpp:501:26: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
  501 |   gtk_widget_set_visible(gtkMenu, visible);
      |                          ^~~~~~~
      |                          wMenu
../hiro/core/../gtk/window.cpp:501:3: error: 'gtk_widget_set_visible' was not declared in this scope
  501 |   gtk_widget_set_visible(gtkMenu, visible);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setStatusEnabled(bool)':
../hiro/core/../gtk/window.cpp:505:28: error: 'gtkStatus' was not declared in this scope
  505 |   gtk_widget_set_sensitive(gtkStatus, enabled);
      |                            ^~~~~~~~~
../hiro/core/../gtk/window.cpp:505:3: error: 'gtk_widget_set_sensitive' was not declared in this scope
  505 |   gtk_widget_set_sensitive(gtkStatus, enabled);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setStatusFont(const hiro::Font&)':
../hiro/core/../gtk/window.cpp:509:18: error: 'gtkStatus' was not declared in this scope
  509 |   pFont::setFont(gtkStatus, font);
      |                  ^~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setStatusText(const nall::string&)':
../hiro/core/../gtk/window.cpp:513:35: error: 'gtkStatus' was not declared in this scope
  513 |   gtk_statusbar_pop(GTK_STATUSBAR(gtkStatus), 1);
      |                                   ^~~~~~~~~
../hiro/core/../gtk/window.cpp:513:21: error: 'GTK_STATUSBAR' was not declared in this scope
  513 |   gtk_statusbar_pop(GTK_STATUSBAR(gtkStatus), 1);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:513:3: error: 'gtk_statusbar_pop' was not declared in this scope
  513 |   gtk_statusbar_pop(GTK_STATUSBAR(gtkStatus), 1);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:514:3: error: 'gtk_statusbar_push' was not declared in this scope
  514 |   gtk_statusbar_push(GTK_STATUSBAR(gtkStatus), 1, text);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_setStatusVisible(bool)':
../hiro/core/../gtk/window.cpp:518:26: error: 'gtkStatus' was not declared in this scope
  518 |   gtk_widget_set_visible(gtkStatus, visible);
      |                          ^~~~~~~~~
../hiro/core/../gtk/window.cpp:518:3: error: 'gtk_widget_set_visible' was not declared in this scope
  518 |   gtk_widget_set_visible(gtkStatus, visible);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_synchronizeGeometry()':
../hiro/core/../gtk/window.cpp:546:31: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  546 |   if(!gtk_widget_get_realized(widget)) return;
      |                               ^~~~~~
      |                               Widget
../hiro/core/../gtk/window.cpp:546:7: error: 'gtk_widget_get_realized' was not declared in this scope
  546 |   if(!gtk_widget_get_realized(widget)) return;
      |       ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:547:30: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  547 |   if(!gtk_widget_get_visible(widget)) return;
      |                              ^~~~~~
      |                              Widget
../hiro/core/../gtk/window.cpp:547:7: error: 'gtk_widget_get_visible' was not declared in this scope
  547 |   if(!gtk_widget_get_visible(widget)) return;
      |       ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:551:3: error: 'GtkAllocation' was not declared in this scope
  551 |   GtkAllocation allocation;
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:552:29: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  552 |   gtk_widget_get_allocation(widget, &allocation);
      |                             ^~~~~~
      |                             Widget
../hiro/core/../gtk/window.cpp:552:38: error: 'allocation' was not declared in this scope
  552 |   gtk_widget_get_allocation(widget, &allocation);
      |                                      ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:552:3: error: 'gtk_widget_get_allocation' was not declared in this scope
  552 |   gtk_widget_get_allocation(widget, &allocation);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:555:26: error: 'lastSize' was not declared in this scope
  555 |   if(allocation.width != lastSize.width || allocation.height != lastSize.height) {
      |                          ^~~~~~~~
../hiro/core/../gtk/window.cpp:557:29: error: no matching function for call to 'hiro::Geometry::setSize(<brace-enclosed initializer list>)'
  557 |     state().geometry.setSize({allocation.width, allocation.height});
      |     ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/core.hpp:271:8: note: candidate: 'hiro::Geometry::type& hiro::Geometry::setSize(hiro::Size)'
  271 |   auto setSize(Size size = {}) -> type&;
      |        ^~~~~~~
../hiro/core/core.hpp:271:21: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'hiro::Size'
  271 |   auto setSize(Size size = {}) -> type&;
      |                ~~~~~^~~~~~~~~
../hiro/core/core.hpp:272:8: note: candidate: 'hiro::Geometry::type& hiro::Geometry::setSize(float, float)'
  272 |   auto setSize(float width, float height) -> type&;
      |        ^~~~~~~
../hiro/core/core.hpp:272:8: note:   candidate expects 2 arguments, 1 provided
../hiro/core/../gtk/window.cpp:566:18: error: expected ';' before 'rectangle'
  566 |     GtkAllocation rectangle;
      |                  ^~~~~~~~~~
      |                  ;
../hiro/core/../gtk/window.cpp:567:40: error: 'rectangle' was not declared in this scope
  567 |     gtk_widget_get_allocation(widget, &rectangle);
      |                                        ^~~~~~~~~
../hiro/core/../gtk/window.cpp:568:27: error: 'G_OBJECT' was not declared in this scope
  568 |     g_signal_emit_by_name(G_OBJECT(widget), "size-allocate", &rectangle, (gpointer)this, nullptr);
      |                           ^~~~~~~~
../hiro/core/../gtk/window.cpp:568:75: error: 'gpointer' was not declared in this scope
  568 |     g_signal_emit_by_name(G_OBJECT(widget), "size-allocate", &rectangle, (gpointer)this, nullptr);
      |                                                                           ^~~~~~~~
../hiro/core/../gtk/window.cpp:568:5: error: 'g_signal_emit_by_name' was not declared in this scope
  568 |     g_signal_emit_by_name(G_OBJECT(widget), "size-allocate", &rectangle, (gpointer)this, nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:570:3: error: 'lastSize' was not declared in this scope
  570 |   lastSize = allocation;
      |   ^~~~~~~~
../hiro/core/../gtk/window.cpp:572:20: error: 'gtk_widget_get_window' was not declared in this scope
  572 |   auto gdkWindow = gtk_widget_get_window(widget);
      |                    ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:573:3: error: 'gdk_window_get_origin' was not declared in this scope
  573 |   gdk_window_get_origin(gdkWindow, &allocation.x, &allocation.y);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:575:22: error: 'lastMove' was not declared in this scope
  575 |   if(allocation.x != lastMove.x || allocation.y != lastMove.y) {
      |                      ^~~~~~~~
../hiro/core/../gtk/window.cpp:576:33: error: no matching function for call to 'hiro::Geometry::setPosition(<brace-enclosed initializer list>)'
  576 |     state().geometry.setPosition({allocation.x, allocation.y});
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/core.hpp:269:8: note: candidate: 'hiro::Geometry::type& hiro::Geometry::setPosition(hiro::Position)'
  269 |   auto setPosition(Position position = {}) -> type&;
      |        ^~~~~~~~~~~
../hiro/core/core.hpp:269:29: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'hiro::Position'
  269 |   auto setPosition(Position position = {}) -> type&;
      |                    ~~~~~~~~~^~~~~~~~~~~~~
../hiro/core/core.hpp:270:8: note: candidate: 'hiro::Geometry::type& hiro::Geometry::setPosition(float, float)'
  270 |   auto setPosition(float x, float y) -> type&;
      |        ^~~~~~~~~~~
../hiro/core/core.hpp:270:8: note:   candidate expects 2 arguments, 1 provided
../hiro/core/../gtk/window.cpp:579:3: error: 'lastMove' was not declared in this scope
  579 |   lastMove = allocation;
      |   ^~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_synchronizeMargin()':
../hiro/core/../gtk/window.cpp:586:31: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  586 |   if(!gtk_widget_get_realized(widget)) return;
      |                               ^~~~~~
      |                               Widget
../hiro/core/../gtk/window.cpp:586:7: error: 'gtk_widget_get_realized' was not declared in this scope
  586 |   if(!gtk_widget_get_realized(widget)) return;
      |       ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:587:30: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  587 |   if(!gtk_widget_get_visible(widget)) return;
      |                              ^~~~~~
      |                              Widget
../hiro/core/../gtk/window.cpp:587:7: error: 'gtk_widget_get_visible' was not declared in this scope
  587 |   if(!gtk_widget_get_visible(widget)) return;
      |       ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:590:39: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  590 |   auto window = gtk_widget_get_window(widget);
      |                                       ^~~~~~
      |                                       Widget
../hiro/core/../gtk/window.cpp:590:17: error: 'gtk_widget_get_window' was not declared in this scope
  590 |   auto window = gtk_widget_get_window(widget);
      |                 ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:591:3: error: 'GdkRectangle' was not declared in this scope
  591 |   GdkRectangle border, client;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:592:41: error: 'border' was not declared in this scope
  592 |   gdk_window_get_frame_extents(window, &border);
      |                                         ^~~~~~
../hiro/core/../gtk/window.cpp:592:3: error: 'gdk_window_get_frame_extents' was not declared in this scope
  592 |   gdk_window_get_frame_extents(window, &border);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:593:34: error: 'client' was not declared in this scope
  593 |   gdk_window_get_origin(window, &client.x, &client.y);
      |                                  ^~~~~~
../hiro/core/../gtk/window.cpp:593:3: error: 'gdk_window_get_origin' was not declared in this scope
  593 |   gdk_window_get_origin(window, &client.x, &client.y);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:597:3: error: 'gdk_window_get_geometry' was not declared in this scope
  597 |   gdk_window_get_geometry(window, nullptr, nullptr, &client.width, &client.height);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:605:29: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
  605 |   if(gtk_widget_get_visible(gtkMenu)) {
      |                             ^~~~~~~
      |                             wMenu
../hiro/core/../gtk/window.cpp:605:6: error: 'gtk_widget_get_visible' was not declared in this scope
  605 |   if(gtk_widget_get_visible(gtkMenu)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:606:5: error: 'GtkAllocation' was not declared in this scope
  606 |     GtkAllocation allocation;
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:609:43: error: 'allocation' was not declared in this scope
  609 |       gtk_widget_get_allocation(gtkMenu, &allocation);
      |                                           ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:609:7: error: 'gtk_widget_get_allocation' was not declared in this scope
  609 |       gtk_widget_get_allocation(gtkMenu, &allocation);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:617:29: error: 'gtkStatus' was not declared in this scope
  617 |   if(gtk_widget_get_visible(gtkStatus)) {
      |                             ^~~~~~~~~
../hiro/core/../gtk/window.cpp:617:6: error: 'gtk_widget_get_visible' was not declared in this scope
  617 |   if(gtk_widget_get_visible(gtkStatus)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:618:5: error: 'GtkAllocation' was not declared in this scope
  618 |     GtkAllocation allocation;
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp:621:45: error: 'allocation' was not declared in this scope
  621 |       gtk_widget_get_allocation(gtkStatus, &allocation);
      |                                             ^~~~~~~~~~
../hiro/core/../gtk/window.cpp:621:7: error: 'gtk_widget_get_allocation' was not declared in this scope
  621 |       gtk_widget_get_allocation(gtkStatus, &allocation);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/window.cpp: In member function 'void hiro::pWindow::_synchronizeState()':
../hiro/core/../gtk/window.cpp:637:31: error: 'widget' was not declared in this scope; did you mean 'Widget'?
  637 |   if(!gtk_widget_get_realized(widget)) return;
      |                               ^~~~~~
      |                               Widget
../hiro/core/../gtk/window.cpp:637:7: error: 'gtk_widget_get_realized' was not declared in this scope
  637 |   if(!gtk_widget_get_realized(widget)) return;
      |       ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:19:
../hiro/core/../gtk/popup-menu.cpp: In member function 'virtual void hiro::pPopupMenu::construct()':
../hiro/core/../gtk/popup-menu.cpp:6:3: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
    6 |   gtkMenu = gtk_menu_new();
      |   ^~~~~~~
      |   wMenu
../hiro/core/../gtk/popup-menu.cpp:6:13: error: 'gtk_menu_new' was not declared in this scope
    6 |   gtkMenu = gtk_menu_new();
      |             ^~~~~~~~~~~~
../hiro/core/../gtk/popup-menu.cpp: In member function 'virtual void hiro::pPopupMenu::destruct()':
../hiro/core/../gtk/popup-menu.cpp:10:22: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
   10 |   gtk_widget_destroy(gtkMenu);
      |                      ^~~~~~~
      |                      wMenu
../hiro/core/../gtk/popup-menu.cpp:10:3: error: 'gtk_widget_destroy' was not declared in this scope
   10 |   gtk_widget_destroy(gtkMenu);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/popup-menu.cpp: In member function 'void hiro::pPopupMenu::append(hiro::sAction)':
../hiro/core/../gtk/popup-menu.cpp:15:42: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
   15 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |                                          ^~~~~~~
      |                                          wMenu
../hiro/core/../gtk/popup-menu.cpp:15:27: error: 'GTK_MENU_SHELL' was not declared in this scope
   15 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/popup-menu.cpp:15:68: error: 'struct hiro::pAction' has no member named 'widget'
   15 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |                                                                    ^~~~~~
../hiro/core/../gtk/popup-menu.cpp:15:5: error: 'gtk_menu_shell_append' was not declared in this scope
   15 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/popup-menu.cpp: In member function 'virtual void hiro::pPopupMenu::setVisible(bool)':
../hiro/core/../gtk/popup-menu.cpp:31:39: error: 'gtkMenu' was not declared in this scope; did you mean 'wMenu'?
   31 |   if(visible) gtk_menu_popup(GTK_MENU(gtkMenu), nullptr, nullptr, nullptr, nullptr, 0, gtk_get_current_event_time());
      |                                       ^~~~~~~
      |                                       wMenu
../hiro/core/../gtk/popup-menu.cpp:31:30: error: 'GTK_MENU' was not declared in this scope
   31 |   if(visible) gtk_menu_popup(GTK_MENU(gtkMenu), nullptr, nullptr, nullptr, nullptr, 0, gtk_get_current_event_time());
      |                              ^~~~~~~~
../hiro/core/../gtk/popup-menu.cpp:31:88: error: 'gtk_get_current_event_time' was not declared in this scope
   31 |   if(visible) gtk_menu_popup(GTK_MENU(gtkMenu), nullptr, nullptr, nullptr, nullptr, 0, gtk_get_current_event_time());
      |                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/popup-menu.cpp:31:15: error: 'gtk_menu_popup' was not declared in this scope
   31 |   if(visible) gtk_menu_popup(GTK_MENU(gtkMenu), nullptr, nullptr, nullptr, nullptr, 0, gtk_get_current_event_time());
      |               ^~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:21:
../hiro/core/../gtk/action/action.cpp: In member function 'virtual void hiro::pAction::setEnabled(bool)':
../hiro/core/../gtk/action/action.cpp:12:28: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   12 |   gtk_widget_set_sensitive(widget, enabled);
      |                            ^~~~~~
      |                            Widget
../hiro/core/../gtk/action/action.cpp:12:3: error: 'gtk_widget_set_sensitive' was not declared in this scope
   12 |   gtk_widget_set_sensitive(widget, enabled);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/action.cpp: In member function 'virtual void hiro::pAction::setFont(const hiro::Font&)':
../hiro/core/../gtk/action/action.cpp:16:18: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   16 |   pFont::setFont(widget, font);
      |                  ^~~~~~
      |                  Widget
../hiro/core/../gtk/action/action.cpp: In member function 'virtual void hiro::pAction::setVisible(bool)':
../hiro/core/../gtk/action/action.cpp:20:26: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   20 |   gtk_widget_set_visible(widget, visible);
      |                          ^~~~~~
      |                          Widget
../hiro/core/../gtk/action/action.cpp:20:3: error: 'gtk_widget_set_visible' was not declared in this scope
   20 |   gtk_widget_set_visible(widget, visible);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:22:
../hiro/core/../gtk/action/menu.cpp: In member function 'virtual void hiro::pMenu::construct()':
../hiro/core/../gtk/action/menu.cpp:6:3: error: 'gtkMenu' was not declared in this scope; did you mean 'pMenu'?
    6 |   gtkMenu = gtk_menu_new();
      |   ^~~~~~~
      |   pMenu
../hiro/core/../gtk/action/menu.cpp:6:13: error: 'gtk_menu_new' was not declared in this scope
    6 |   gtkMenu = gtk_menu_new();
      |             ^~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:7:3: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    7 |   widget = gtk_image_menu_item_new_with_mnemonic("");
      |   ^~~~~~
      |   Widget
../hiro/core/../gtk/action/menu.cpp:7:12: error: 'gtk_image_menu_item_new_with_mnemonic' was not declared in this scope
    7 |   widget = gtk_image_menu_item_new_with_mnemonic("");
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:8:29: error: 'GTK_MENU_ITEM' was not declared in this scope
    8 |   gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), gtkMenu);
      |                             ^~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:8:3: error: 'gtk_menu_item_set_submenu' was not declared in this scope
    8 |   gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), gtkMenu);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp: In member function 'virtual void hiro::pMenu::destruct()':
../hiro/core/../gtk/action/menu.cpp:16:22: error: 'gtkMenu' was not declared in this scope; did you mean 'pMenu'?
   16 |   gtk_widget_destroy(gtkMenu);
      |                      ^~~~~~~
      |                      pMenu
../hiro/core/../gtk/action/menu.cpp:16:3: error: 'gtk_widget_destroy' was not declared in this scope
   16 |   gtk_widget_destroy(gtkMenu);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:17:22: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   17 |   gtk_widget_destroy(widget);
      |                      ^~~~~~
      |                      Widget
../hiro/core/../gtk/action/menu.cpp: In member function 'void hiro::pMenu::append(hiro::sAction)':
../hiro/core/../gtk/action/menu.cpp:22:42: error: 'gtkMenu' was not declared in this scope; did you mean 'pMenu'?
   22 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |                                          ^~~~~~~
      |                                          pMenu
../hiro/core/../gtk/action/menu.cpp:22:27: error: 'GTK_MENU_SHELL' was not declared in this scope
   22 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:22:68: error: 'struct hiro::pAction' has no member named 'widget'
   22 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |                                                                    ^~~~~~
../hiro/core/../gtk/action/menu.cpp:22:5: error: 'gtk_menu_shell_append' was not declared in this scope
   22 |     gtk_menu_shell_append(GTK_MENU_SHELL(gtkMenu), action->self()->widget);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp: In member function 'void hiro::pMenu::setIcon(const nall::image&)':
../hiro/core/../gtk/action/menu.cpp:41:5: error: 'GtkImage' was not declared in this scope
   41 |     GtkImage* gtkImage = CreateImage(icon, true);
      |     ^~~~~~~~
../hiro/core/../gtk/action/menu.cpp:41:15: error: 'gtkImage' was not declared in this scope
   41 |     GtkImage* gtkImage = CreateImage(icon, true);
      |               ^~~~~~~~
../hiro/core/../gtk/action/menu.cpp:41:26: error: 'CreateImage' was not declared in this scope
   41 |     GtkImage* gtkImage = CreateImage(icon, true);
      |                          ^~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:42:55: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   42 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                                       ^~~~~~
      |                                                       Widget
../hiro/core/../gtk/action/menu.cpp:42:35: error: 'GTK_IMAGE_MENU_ITEM' was not declared in this scope
   42 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:42:65: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   42 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                                                 ^~~~~~~~~
      |                                                                 wWidget
../hiro/core/../gtk/action/menu.cpp:42:75: error: expected primary-expression before ')' token
   42 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                                                           ^
../hiro/core/../gtk/action/menu.cpp:42:5: error: 'gtk_image_menu_item_set_image' was not declared in this scope
   42 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:44:55: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   44 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
      |                                                       ^~~~~~
      |                                                       Widget
../hiro/core/../gtk/action/menu.cpp:44:35: error: 'GTK_IMAGE_MENU_ITEM' was not declared in this scope
   44 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
      |                                   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:44:5: error: 'gtk_image_menu_item_set_image' was not declared in this scope
   44 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp: In member function 'void hiro::pMenu::setText(const nall::string&)':
../hiro/core/../gtk/action/menu.cpp:49:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   49 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/action/menu.cpp:49:27: error: 'GTK_MENU_ITEM' was not declared in this scope
   49 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                           ^~~~~~~~~~~~~
../hiro/core/../gtk/action/menu.cpp:49:3: error: 'gtk_menu_item_set_label' was not declared in this scope
   49 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:23:
../hiro/core/../gtk/action/menu-separator.cpp: In member function 'virtual void hiro::pMenuSeparator::construct()':
../hiro/core/../gtk/action/menu-separator.cpp:6:3: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    6 |   widget = gtk_separator_menu_item_new();
      |   ^~~~~~
      |   Widget
../hiro/core/../gtk/action/menu-separator.cpp:6:12: error: 'gtk_separator_menu_item_new' was not declared in this scope
    6 |   widget = gtk_separator_menu_item_new();
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-separator.cpp: In member function 'virtual void hiro::pMenuSeparator::destruct()':
../hiro/core/../gtk/action/menu-separator.cpp:10:6: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   10 |   if(widget) gtk_widget_destroy(widget), widget = nullptr;
      |      ^~~~~~
      |      Widget
../hiro/core/../gtk/action/menu-separator.cpp:10:14: error: 'gtk_widget_destroy' was not declared in this scope
   10 |   if(widget) gtk_widget_destroy(widget), widget = nullptr;
      |              ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:24:
../hiro/core/../gtk/action/menu-item.cpp: At global scope:
../hiro/core/../gtk/action/menu-item.cpp:5:31: error: 'GtkMenuItem' was not declared in this scope; did you mean 'wMenuItem'?
    5 | static auto MenuItem_activate(GtkMenuItem*, pMenuItem* p) -> void {
      |                               ^~~~~~~~~~~
      |                               wMenuItem
../hiro/core/../gtk/action/menu-item.cpp:5:43: error: expected primary-expression before ',' token
    5 | static auto MenuItem_activate(GtkMenuItem*, pMenuItem* p) -> void {
      |                                           ^
../hiro/core/../gtk/action/menu-item.cpp:5:54: error: expected primary-expression before '*' token
    5 | static auto MenuItem_activate(GtkMenuItem*, pMenuItem* p) -> void {
      |                                                      ^
../hiro/core/../gtk/action/menu-item.cpp:5:56: error: 'p' was not declared in this scope
    5 | static auto MenuItem_activate(GtkMenuItem*, pMenuItem* p) -> void {
      |                                                        ^
../hiro/core/../gtk/action/menu-item.cpp:5:57: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto MenuItem_activate(GtkMenuItem*, pMenuItem* p) -> void {
      |                                                         ^
../hiro/core/../gtk/action/menu-item.cpp:5:59: error: expected ',' or ';' before '->' token
    5 | static auto MenuItem_activate(GtkMenuItem*, pMenuItem* p) -> void {
      |                                                           ^~
../hiro/core/../gtk/action/menu-item.cpp: In member function 'virtual void hiro::pMenuItem::construct()':
../hiro/core/../gtk/action/menu-item.cpp:10:3: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   10 |   widget = gtk_image_menu_item_new_with_mnemonic("");
      |   ^~~~~~
      |   Widget
../hiro/core/../gtk/action/menu-item.cpp:10:12: error: 'gtk_image_menu_item_new_with_mnemonic' was not declared in this scope
   10 |   widget = gtk_image_menu_item_new_with_mnemonic("");
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:11:20: error: 'G_OBJECT' was not declared in this scope
   11 |   g_signal_connect(G_OBJECT(widget), "activate", G_CALLBACK(MenuItem_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:11:50: error: 'G_CALLBACK' was not declared in this scope
   11 |   g_signal_connect(G_OBJECT(widget), "activate", G_CALLBACK(MenuItem_activate), (gpointer)this);
      |                                                  ^~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:11:82: error: 'gpointer' was not declared in this scope
   11 |   g_signal_connect(G_OBJECT(widget), "activate", G_CALLBACK(MenuItem_activate), (gpointer)this);
      |                                                                                  ^~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:11:3: error: 'g_signal_connect' was not declared in this scope
   11 |   g_signal_connect(G_OBJECT(widget), "activate", G_CALLBACK(MenuItem_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp: In member function 'virtual void hiro::pMenuItem::destruct()':
../hiro/core/../gtk/action/menu-item.cpp:17:6: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   17 |   if(widget) gtk_widget_destroy(widget), widget = nullptr;
      |      ^~~~~~
      |      Widget
../hiro/core/../gtk/action/menu-item.cpp:17:14: error: 'gtk_widget_destroy' was not declared in this scope
   17 |   if(widget) gtk_widget_destroy(widget), widget = nullptr;
      |              ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp: In member function 'void hiro::pMenuItem::setIcon(const nall::image&)':
../hiro/core/../gtk/action/menu-item.cpp:22:5: error: 'GtkImage' was not declared in this scope
   22 |     GtkImage* gtkImage = CreateImage(icon, true);
      |     ^~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:22:15: error: 'gtkImage' was not declared in this scope
   22 |     GtkImage* gtkImage = CreateImage(icon, true);
      |               ^~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:22:26: error: 'CreateImage' was not declared in this scope
   22 |     GtkImage* gtkImage = CreateImage(icon, true);
      |                          ^~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:23:55: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   23 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                                       ^~~~~~
      |                                                       Widget
../hiro/core/../gtk/action/menu-item.cpp:23:35: error: 'GTK_IMAGE_MENU_ITEM' was not declared in this scope
   23 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:23:65: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   23 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                                                 ^~~~~~~~~
      |                                                                 wWidget
../hiro/core/../gtk/action/menu-item.cpp:23:75: error: expected primary-expression before ')' token
   23 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |                                                                           ^
../hiro/core/../gtk/action/menu-item.cpp:23:5: error: 'gtk_image_menu_item_set_image' was not declared in this scope
   23 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), (GtkWidget*)gtkImage);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:25:55: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   25 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
      |                                                       ^~~~~~
      |                                                       Widget
../hiro/core/../gtk/action/menu-item.cpp:25:35: error: 'GTK_IMAGE_MENU_ITEM' was not declared in this scope
   25 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
      |                                   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:25:5: error: 'gtk_image_menu_item_set_image' was not declared in this scope
   25 |     gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp: In member function 'void hiro::pMenuItem::setText(const nall::string&)':
../hiro/core/../gtk/action/menu-item.cpp:30:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   30 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/action/menu-item.cpp:30:27: error: 'GTK_MENU_ITEM' was not declared in this scope
   30 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                           ^~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-item.cpp:30:3: error: 'gtk_menu_item_set_label' was not declared in this scope
   30 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:25:
../hiro/core/../gtk/action/menu-check-item.cpp: At global scope:
../hiro/core/../gtk/action/menu-check-item.cpp:5:34: error: 'GtkCheckMenuItem' was not declared in this scope
    5 | static auto MenuCheckItem_toggle(GtkCheckMenuItem* gtkCheckMenuItem, pMenuCheckItem* p) -> void {
      |                                  ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:5:52: error: 'gtkCheckMenuItem' was not declared in this scope
    5 | static auto MenuCheckItem_toggle(GtkCheckMenuItem* gtkCheckMenuItem, pMenuCheckItem* p) -> void {
      |                                                    ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:5:84: error: expected primary-expression before '*' token
    5 | static auto MenuCheckItem_toggle(GtkCheckMenuItem* gtkCheckMenuItem, pMenuCheckItem* p) -> void {
      |                                                                                    ^
../hiro/core/../gtk/action/menu-check-item.cpp:5:86: error: 'p' was not declared in this scope
    5 | static auto MenuCheckItem_toggle(GtkCheckMenuItem* gtkCheckMenuItem, pMenuCheckItem* p) -> void {
      |                                                                                      ^
../hiro/core/../gtk/action/menu-check-item.cpp:5:87: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto MenuCheckItem_toggle(GtkCheckMenuItem* gtkCheckMenuItem, pMenuCheckItem* p) -> void {
      |                                                                                       ^
../hiro/core/../gtk/action/menu-check-item.cpp:5:89: error: expected ',' or ';' before '->' token
    5 | static auto MenuCheckItem_toggle(GtkCheckMenuItem* gtkCheckMenuItem, pMenuCheckItem* p) -> void {
      |                                                                                         ^~
../hiro/core/../gtk/action/menu-check-item.cpp: In member function 'virtual void hiro::pMenuCheckItem::construct()':
../hiro/core/../gtk/action/menu-check-item.cpp:11:3: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   11 |   widget = gtk_check_menu_item_new_with_mnemonic("");
      |   ^~~~~~
      |   Widget
../hiro/core/../gtk/action/menu-check-item.cpp:11:12: error: 'gtk_check_menu_item_new_with_mnemonic' was not declared in this scope
   11 |   widget = gtk_check_menu_item_new_with_mnemonic("");
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:14:20: error: 'G_OBJECT' was not declared in this scope
   14 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuCheckItem_toggle), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:14:49: error: 'G_CALLBACK' was not declared in this scope
   14 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuCheckItem_toggle), (gpointer)this);
      |                                                 ^~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:14:84: error: 'gpointer' was not declared in this scope
   14 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuCheckItem_toggle), (gpointer)this);
      |                                                                                    ^~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:14:3: error: 'g_signal_connect' was not declared in this scope
   14 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuCheckItem_toggle), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp: In member function 'virtual void hiro::pMenuCheckItem::destruct()':
../hiro/core/../gtk/action/menu-check-item.cpp:18:22: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   18 |   gtk_widget_destroy(widget);
      |                      ^~~~~~
      |                      Widget
../hiro/core/../gtk/action/menu-check-item.cpp:18:3: error: 'gtk_widget_destroy' was not declared in this scope
   18 |   gtk_widget_destroy(widget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp: In member function 'void hiro::pMenuCheckItem::setChecked(bool)':
../hiro/core/../gtk/action/menu-check-item.cpp:28:54: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   28 |   gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), checked);
      |                                                      ^~~~~~
      |                                                      Widget
../hiro/core/../gtk/action/menu-check-item.cpp:28:34: error: 'GTK_CHECK_MENU_ITEM' was not declared in this scope
   28 |   gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), checked);
      |                                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:28:3: error: 'gtk_check_menu_item_set_active' was not declared in this scope
   28 |   gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), checked);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp: In member function 'void hiro::pMenuCheckItem::setText(const nall::string&)':
../hiro/core/../gtk/action/menu-check-item.cpp:33:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   33 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/action/menu-check-item.cpp:33:27: error: 'GTK_MENU_ITEM' was not declared in this scope
   33 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                           ^~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-check-item.cpp:33:3: error: 'gtk_menu_item_set_label' was not declared in this scope
   33 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:26:
../hiro/core/../gtk/action/menu-radio-item.cpp: At global scope:
../hiro/core/../gtk/action/menu-radio-item.cpp:5:36: error: 'GtkCheckMenuItem' was not declared in this scope
    5 | static auto MenuRadioItem_activate(GtkCheckMenuItem* gtkCheckMenuItem, pMenuRadioItem* p) -> void {
      |                                    ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:5:54: error: 'gtkCheckMenuItem' was not declared in this scope
    5 | static auto MenuRadioItem_activate(GtkCheckMenuItem* gtkCheckMenuItem, pMenuRadioItem* p) -> void {
      |                                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:5:86: error: expected primary-expression before '*' token
    5 | static auto MenuRadioItem_activate(GtkCheckMenuItem* gtkCheckMenuItem, pMenuRadioItem* p) -> void {
      |                                                                                      ^
../hiro/core/../gtk/action/menu-radio-item.cpp:5:88: error: 'p' was not declared in this scope
    5 | static auto MenuRadioItem_activate(GtkCheckMenuItem* gtkCheckMenuItem, pMenuRadioItem* p) -> void {
      |                                                                                        ^
../hiro/core/../gtk/action/menu-radio-item.cpp:5:89: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto MenuRadioItem_activate(GtkCheckMenuItem* gtkCheckMenuItem, pMenuRadioItem* p) -> void {
      |                                                                                         ^
../hiro/core/../gtk/action/menu-radio-item.cpp:5:91: error: expected ',' or ';' before '->' token
    5 | static auto MenuRadioItem_activate(GtkCheckMenuItem* gtkCheckMenuItem, pMenuRadioItem* p) -> void {
      |                                                                                           ^~
../hiro/core/../gtk/action/menu-radio-item.cpp: In member function 'virtual void hiro::pMenuRadioItem::construct()':
../hiro/core/../gtk/action/menu-radio-item.cpp:10:3: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   10 |   widget = gtk_radio_menu_item_new_with_mnemonic(0, "");
      |   ^~~~~~
      |   Widget
../hiro/core/../gtk/action/menu-radio-item.cpp:10:12: error: 'gtk_radio_menu_item_new_with_mnemonic' was not declared in this scope
   10 |   widget = gtk_radio_menu_item_new_with_mnemonic(0, "");
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:11:3: error: 'gtkCheckMenuItem' was not declared in this scope
   11 |   gtkCheckMenuItem = GTK_CHECK_MENU_ITEM(widget);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:11:22: error: 'GTK_CHECK_MENU_ITEM' was not declared in this scope
   11 |   gtkCheckMenuItem = GTK_CHECK_MENU_ITEM(widget);
      |                      ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:12:3: error: 'gtkRadioMenuItem' was not declared in this scope
   12 |   gtkRadioMenuItem = GTK_RADIO_MENU_ITEM(widget);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:12:22: error: 'GTK_RADIO_MENU_ITEM' was not declared in this scope
   12 |   gtkRadioMenuItem = GTK_RADIO_MENU_ITEM(widget);
      |                      ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:16:20: error: 'G_OBJECT' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuRadioItem_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:16:49: error: 'G_CALLBACK' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuRadioItem_activate), (gpointer)this);
      |                                                 ^~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:16:86: error: 'gpointer' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuRadioItem_activate), (gpointer)this);
      |                                                                                      ^~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:16:3: error: 'g_signal_connect' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(MenuRadioItem_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp: In member function 'virtual void hiro::pMenuRadioItem::destruct()':
../hiro/core/../gtk/action/menu-radio-item.cpp:20:6: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   20 |   if(widget) gtk_widget_destroy(widget), widget = nullptr;
      |      ^~~~~~
      |      Widget
../hiro/core/../gtk/action/menu-radio-item.cpp:20:14: error: 'gtk_widget_destroy' was not declared in this scope
   20 |   if(widget) gtk_widget_destroy(widget), widget = nullptr;
      |              ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp: In member function 'void hiro::pMenuRadioItem::setChecked()':
../hiro/core/../gtk/action/menu-radio-item.cpp:25:34: error: 'gtkCheckMenuItem' was not declared in this scope
   25 |   gtk_check_menu_item_set_active(gtkCheckMenuItem, true);
      |                                  ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:25:3: error: 'gtk_check_menu_item_set_active' was not declared in this scope
   25 |   gtk_check_menu_item_set_active(gtkCheckMenuItem, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp: In member function 'void hiro::pMenuRadioItem::setGroup(hiro::sGroup)':
../hiro/core/../gtk/action/menu-radio-item.cpp:30:9: error: 'GtkRadioMenuItem' was not declared in this scope
   30 |   maybe<GtkRadioMenuItem*> gtkRadioMenuItem;
      |         ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:30:26: error: template argument 1 is invalid
   30 |   maybe<GtkRadioMenuItem*> gtkRadioMenuItem;
      |                          ^
../hiro/core/../gtk/action/menu-radio-item.cpp:36:47: error: 'struct hiro::pMenuRadioItem' has no member named 'gtkRadioMenuItem'
   36 |           gtk_radio_menu_item_set_group(self->gtkRadioMenuItem, nullptr);
      |                                               ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:36:11: error: 'gtk_radio_menu_item_set_group' was not declared in this scope
   36 |           gtk_radio_menu_item_set_group(self->gtkRadioMenuItem, nullptr);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:38:38: error: 'struct hiro::pMenuRadioItem' has no member named 'gtkRadioMenuItem'
   38 |             gtkRadioMenuItem = self->gtkRadioMenuItem;
      |                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:39:50: error: 'struct hiro::pMenuRadioItem' has no member named 'gtkCheckMenuItem'
   39 |             gtk_check_menu_item_set_active(self->gtkCheckMenuItem, menuRadioItem->state.checked = true);
      |                                                  ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:39:13: error: 'gtk_check_menu_item_set_active' was not declared in this scope
   39 |             gtk_check_menu_item_set_active(self->gtkCheckMenuItem, menuRadioItem->state.checked = true);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:41:49: error: 'struct hiro::pMenuRadioItem' has no member named 'gtkRadioMenuItem'
   41 |             gtk_radio_menu_item_set_group(self->gtkRadioMenuItem, gtk_radio_menu_item_get_group(*gtkRadioMenuItem));
      |                                                 ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:41:97: error: invalid type argument of unary '*' (have 'int')
   41 |             gtk_radio_menu_item_set_group(self->gtkRadioMenuItem, gtk_radio_menu_item_get_group(*gtkRadioMenuItem));
      |                                                                                                 ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:41:67: error: 'gtk_radio_menu_item_get_group' was not declared in this scope
   41 |             gtk_radio_menu_item_set_group(self->gtkRadioMenuItem, gtk_radio_menu_item_get_group(*gtkRadioMenuItem));
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:42:50: error: 'struct hiro::pMenuRadioItem' has no member named 'gtkCheckMenuItem'
   42 |             gtk_check_menu_item_set_active(self->gtkCheckMenuItem, menuRadioItem->state.checked = false);
      |                                                  ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:42:13: error: 'gtk_check_menu_item_set_active' was not declared in this scope
   42 |             gtk_check_menu_item_set_active(self->gtkCheckMenuItem, menuRadioItem->state.checked = false);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp: In member function 'void hiro::pMenuRadioItem::setText(const nall::string&)':
../hiro/core/../gtk/action/menu-radio-item.cpp:52:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   52 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/action/menu-radio-item.cpp:52:27: error: 'GTK_MENU_ITEM' was not declared in this scope
   52 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |                           ^~~~~~~~~~~~~
../hiro/core/../gtk/action/menu-radio-item.cpp:52:3: error: 'gtk_menu_item_set_label' was not declared in this scope
   52 |   gtk_menu_item_set_label(GTK_MENU_ITEM(widget), _mnemonic(text));
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:30:
../hiro/core/../gtk/widget/widget.cpp: At global scope:
../hiro/core/../gtk/widget/widget.cpp:5:25: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto Widget_drop(GtkWidget* widget, GdkDragContext* context, int x, int y,
      |                         ^~~~~~~~~
      |                         wWidget
../hiro/core/../gtk/widget/widget.cpp:5:36: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    5 | static auto Widget_drop(GtkWidget* widget, GdkDragContext* context, int x, int y,
      |                                    ^~~~~~
      |                                    Widget
../hiro/core/../gtk/widget/widget.cpp:5:44: error: 'GdkDragContext' was not declared in this scope
    5 | static auto Widget_drop(GtkWidget* widget, GdkDragContext* context, int x, int y,
      |                                            ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:5:60: error: 'context' was not declared in this scope; did you mean 'ucontext'?
    5 | static auto Widget_drop(GtkWidget* widget, GdkDragContext* context, int x, int y,
      |                                                            ^~~~~~~
      |                                                            ucontext
../hiro/core/../gtk/widget/widget.cpp:5:69: error: expected primary-expression before 'int'
    5 | static auto Widget_drop(GtkWidget* widget, GdkDragContext* context, int x, int y,
      |                                                                     ^~~
../hiro/core/../gtk/widget/widget.cpp:5:76: error: expected primary-expression before 'int'
    5 | static auto Widget_drop(GtkWidget* widget, GdkDragContext* context, int x, int y,
      |                                                                            ^~~
../hiro/core/../gtk/widget/widget.cpp:6:1: error: 'GtkSelectionData' was not declared in this scope
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      | ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:6:19: error: 'data' was not declared in this scope
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                   ^~~~
../hiro/core/../gtk/widget/widget.cpp:6:30: error: expected primary-expression before 'type'
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                              ^~~~
../hiro/core/../gtk/widget/widget.cpp:6:41: error: expected primary-expression before 'timestamp'
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                                         ^~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:6:59: error: expected primary-expression before '*' token
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                                                           ^
../hiro/core/../gtk/widget/widget.cpp:6:61: error: 'p' was not declared in this scope
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                                                             ^
../hiro/core/../gtk/widget/widget.cpp:6:62: error: expression list treated as compound expression in initializer [-fpermissive]
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                                                              ^
../hiro/core/../gtk/widget/widget.cpp:6:64: error: expected ',' or ';' before '->' token
    6 | GtkSelectionData* data, uint type, uint timestamp, pWidget* p) -> void {
      |                                                                ^~
../hiro/core/../gtk/widget/widget.cpp:13:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/widget/widget.cpp:13:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/widget/widget.cpp:13:50: error: 'GdkEventButton' was not declared in this scope
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:13:66: error: 'event' was not declared in this scope; did you mean 'servent'?
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                  ^~~~~
      |                                                                  servent
../hiro/core/../gtk/widget/widget.cpp:13:80: error: expected primary-expression before '*' token
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                ^
../hiro/core/../gtk/widget/widget.cpp:13:82: error: 'p' was not declared in this scope
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                  ^
../hiro/core/../gtk/widget/widget.cpp:13:83: error: expression list treated as compound expression in initializer [-fpermissive]
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                   ^
../hiro/core/../gtk/widget/widget.cpp:13:85: error: expected ',' or ';' before '->' token
   13 | static auto Widget_mouseEnter(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                     ^~
../hiro/core/../gtk/widget/widget.cpp:23:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/widget/widget.cpp:23:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/widget/widget.cpp:23:50: error: 'GdkEventButton' was not declared in this scope
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:23:66: error: 'event' was not declared in this scope; did you mean 'servent'?
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                  ^~~~~
      |                                                                  servent
../hiro/core/../gtk/widget/widget.cpp:23:80: error: expected primary-expression before '*' token
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                ^
../hiro/core/../gtk/widget/widget.cpp:23:82: error: 'p' was not declared in this scope
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                  ^
../hiro/core/../gtk/widget/widget.cpp:23:83: error: expression list treated as compound expression in initializer [-fpermissive]
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                   ^
../hiro/core/../gtk/widget/widget.cpp:23:85: error: expected ',' or ';' before '->' token
   23 | static auto Widget_mouseLeave(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> int {
      |                                                                                     ^~
../hiro/core/../gtk/widget/widget.cpp:33:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/widget/widget.cpp:33:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/widget/widget.cpp:33:49: error: 'GdkEventButton' was not declared in this scope
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:33:65: error: 'event' was not declared in this scope; did you mean 'servent'?
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                 ^~~~~
      |                                                                 servent
../hiro/core/../gtk/widget/widget.cpp:33:79: error: expected primary-expression before '*' token
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/widget.cpp:33:81: error: 'p' was not declared in this scope
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                 ^
../hiro/core/../gtk/widget/widget.cpp:33:82: error: expression list treated as compound expression in initializer [-fpermissive]
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/widget.cpp:33:84: error: expected ',' or ';' before '->' token
   33 | static auto Widget_mouseMove(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                    ^~
../hiro/core/../gtk/widget/widget.cpp:38:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/widget/widget.cpp:38:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/widget/widget.cpp:38:50: error: 'GdkEventButton' was not declared in this scope
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:38:66: error: 'event' was not declared in this scope; did you mean 'servent'?
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                  ^~~~~
      |                                                                  servent
../hiro/core/../gtk/widget/widget.cpp:38:80: error: expected primary-expression before '*' token
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                ^
../hiro/core/../gtk/widget/widget.cpp:38:82: error: 'p' was not declared in this scope
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/widget.cpp:38:83: error: expression list treated as compound expression in initializer [-fpermissive]
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                   ^
../hiro/core/../gtk/widget/widget.cpp:38:85: error: expected ',' or ';' before '->' token
   38 | static auto Widget_mousePress(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                     ^~
../hiro/core/../gtk/widget/widget.cpp:47:33: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                 ^~~~~~~~~
      |                                 wWidget
../hiro/core/../gtk/widget/widget.cpp:47:44: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                            ^~~~~~
      |                                            Widget
../hiro/core/../gtk/widget/widget.cpp:47:52: error: 'GdkEventButton' was not declared in this scope
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                    ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:47:68: error: 'event' was not declared in this scope; did you mean 'servent'?
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                    ^~~~~
      |                                                                    servent
../hiro/core/../gtk/widget/widget.cpp:47:82: error: expected primary-expression before '*' token
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/widget.cpp:47:84: error: 'p' was not declared in this scope
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                    ^
../hiro/core/../gtk/widget/widget.cpp:47:85: error: expression list treated as compound expression in initializer [-fpermissive]
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                     ^
../hiro/core/../gtk/widget/widget.cpp:47:87: error: expected ',' or ';' before '->' token
   47 | static auto Widget_mouseRelease(GtkWidget* widget, GdkEventButton* event, pWidget* p) -> signed {
      |                                                                                       ^~
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual void hiro::pWidget::construct()':
../hiro/core/../gtk/widget/widget.cpp:57:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   57 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp: At global scope:
../hiro/core/../gtk/widget/widget.cpp:73:45: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   73 | auto pWidget::container(mWidget& widget) -> GtkWidget* {
      |                                             ^~~~~~~~~
      |                                             pWidget
../hiro/core/../gtk/widget/widget.cpp:73:54: error: expected initializer before '*' token
   73 | auto pWidget::container(mWidget& widget) -> GtkWidget* {
      |                                                      ^
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual bool hiro::pWidget::focused() const':
../hiro/core/../gtk/widget/widget.cpp:78:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   78 |   if(!gtkWidget) return false;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:79:31: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   79 |   return gtk_widget_has_focus(gtkWidget);
      |                               ^~~~~~~~~
      |                               pWidget
../hiro/core/../gtk/widget/widget.cpp:79:10: error: 'gtk_widget_has_focus' was not declared in this scope
   79 |   return gtk_widget_has_focus(gtkWidget);
      |          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'void hiro::pWidget::setDroppable(bool)':
../hiro/core/../gtk/widget/widget.cpp:83:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   83 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:85:23: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   85 |     gtk_drag_dest_set(gtkWidget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |                       ^~~~~~~~~
      |                       pWidget
../hiro/core/../gtk/widget/widget.cpp:85:34: error: 'GTK_DEST_DEFAULT_ALL' was not declared in this scope
   85 |     gtk_drag_dest_set(gtkWidget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |                                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:85:68: error: 'GDK_ACTION_COPY' was not declared in this scope
   85 |     gtk_drag_dest_set(gtkWidget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |                                                                    ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:85:5: error: 'gtk_drag_dest_set' was not declared in this scope
   85 |     gtk_drag_dest_set(gtkWidget, GTK_DEST_DEFAULT_ALL, nullptr, 0, GDK_ACTION_COPY);
      |     ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:86:5: error: 'gtk_drag_dest_add_uri_targets' was not declared in this scope
   86 |     gtk_drag_dest_add_uri_targets(gtkWidget);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual void hiro::pWidget::setEnabled(bool)':
../hiro/core/../gtk/widget/widget.cpp:91:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   91 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:92:28: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   92 |   gtk_widget_set_sensitive(gtkWidget, enabled);
      |                            ^~~~~~~~~
      |                            pWidget
../hiro/core/../gtk/widget/widget.cpp:92:3: error: 'gtk_widget_set_sensitive' was not declared in this scope
   92 |   gtk_widget_set_sensitive(gtkWidget, enabled);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual void hiro::pWidget::setFocused()':
../hiro/core/../gtk/widget/widget.cpp:100:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  100 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:101:25: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  101 |   gtk_widget_grab_focus(gtkWidget);
      |                         ^~~~~~~~~
      |                         pWidget
../hiro/core/../gtk/widget/widget.cpp:101:3: error: 'gtk_widget_grab_focus' was not declared in this scope
  101 |   gtk_widget_grab_focus(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual void hiro::pWidget::setFont(const hiro::Font&)':
../hiro/core/../gtk/widget/widget.cpp:105:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  105 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:106:25: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  106 |   return pFont::setFont(gtkWidget, font);
      |                         ^~~~~~~~~
      |                         pWidget
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual void hiro::pWidget::setGeometry(hiro::Geometry)':
../hiro/core/../gtk/widget/widget.cpp:110:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  110 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:111:6: error: 'gtkParent' was not declared in this scope
  111 |   if(gtkParent) gtk_fixed_move(GTK_FIXED(gtkParent), gtkWidget, geometry.x(), geometry.y());
      |      ^~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:111:32: error: 'GTK_FIXED' was not declared in this scope; did you mean 'MAP_FIXED'?
  111 |   if(gtkParent) gtk_fixed_move(GTK_FIXED(gtkParent), gtkWidget, geometry.x(), geometry.y());
      |                                ^~~~~~~~~
      |                                MAP_FIXED
../hiro/core/../gtk/widget/widget.cpp:111:54: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  111 |   if(gtkParent) gtk_fixed_move(GTK_FIXED(gtkParent), gtkWidget, geometry.x(), geometry.y());
      |                                                      ^~~~~~~~~
      |                                                      pWidget
../hiro/core/../gtk/widget/widget.cpp:111:17: error: 'gtk_fixed_move' was not declared in this scope
  111 |   if(gtkParent) gtk_fixed_move(GTK_FIXED(gtkParent), gtkWidget, geometry.x(), geometry.y());
      |                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:114:31: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  114 |   gtk_widget_set_size_request(gtkWidget, geometry.width(), geometry.height());
      |                               ^~~~~~~~~
      |                               pWidget
../hiro/core/../gtk/widget/widget.cpp:114:3: error: 'gtk_widget_set_size_request' was not declared in this scope
  114 |   gtk_widget_set_size_request(gtkWidget, geometry.width(), geometry.height());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:115:11: error: 'gtk_widget_get_realized' was not declared in this scope
  115 |   if(0 && gtk_widget_get_realized(gtkWidget)) {
      |           ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:121:9: error: 'GtkAllocation' was not declared in this scope
  121 |         GtkAllocation allocation;
      |         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:122:47: error: 'allocation' was not declared in this scope
  122 |         gtk_widget_get_allocation(gtkWidget, &allocation);
      |                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:122:9: error: 'gtk_widget_get_allocation' was not declared in this scope
  122 |         gtk_widget_get_allocation(gtkWidget, &allocation);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:124:9: error: 'gtk_main_iteration_do' was not declared in this scope
  124 |         gtk_main_iteration_do(false);
      |         ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:131:3: error: 'gtk_widget_queue_draw' was not declared in this scope
  131 |   gtk_widget_queue_draw(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'void hiro::pWidget::setMouseCursor(const hiro::MouseCursor&)':
../hiro/core/../gtk/widget/widget.cpp:147:7: error: 'gdkMouseCursor' was not declared in this scope; did you mean 'setMouseCursor'?
  147 |       gdkMouseCursor = gdk_cursor_new_from_name(gdk_display_get_default(), name);
      |       ^~~~~~~~~~~~~~
      |       setMouseCursor
../hiro/core/../gtk/widget/widget.cpp:147:49: error: 'gdk_display_get_default' was not declared in this scope
  147 |       gdkMouseCursor = gdk_cursor_new_from_name(gdk_display_get_default(), name);
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp:147:24: error: 'gdk_cursor_new_from_name' was not declared in this scope
  147 |       gdkMouseCursor = gdk_cursor_new_from_name(gdk_display_get_default(), name);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'void hiro::pWidget::setToolTip(const nall::string&)':
../hiro/core/../gtk/widget/widget.cpp:153:31: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  153 |   gtk_widget_set_tooltip_text(gtkWidget, toolTip);
      |                               ^~~~~~~~~
      |                               pWidget
../hiro/core/../gtk/widget/widget.cpp:153:3: error: 'gtk_widget_set_tooltip_text' was not declared in this scope
  153 |   gtk_widget_set_tooltip_text(gtkWidget, toolTip);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/widget.cpp: In member function 'virtual void hiro::pWidget::setVisible(bool)':
../hiro/core/../gtk/widget/widget.cpp:157:7: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  157 |   if(!gtkWidget) return;
      |       ^~~~~~~~~
      |       pWidget
../hiro/core/../gtk/widget/widget.cpp:158:26: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  158 |   gtk_widget_set_visible(gtkWidget, visible);
      |                          ^~~~~~~~~
      |                          pWidget
../hiro/core/../gtk/widget/widget.cpp:158:3: error: 'gtk_widget_set_visible' was not declared in this scope
  158 |   gtk_widget_set_visible(gtkWidget, visible);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:31:
../hiro/core/../gtk/widget/button.cpp: At global scope:
../hiro/core/../gtk/widget/button.cpp:5:29: error: 'GtkButton' was not declared in this scope; did you mean 'wButton'?
    5 | static auto Button_activate(GtkButton* gtkButton, pButton* p) -> void { p->_doActivate(); }
      |                             ^~~~~~~~~
      |                             wButton
../hiro/core/../gtk/widget/button.cpp:5:40: error: 'gtkButton' was not declared in this scope; did you mean 'wButton'?
    5 | static auto Button_activate(GtkButton* gtkButton, pButton* p) -> void { p->_doActivate(); }
      |                                        ^~~~~~~~~
      |                                        wButton
../hiro/core/../gtk/widget/button.cpp:5:58: error: expected primary-expression before '*' token
    5 | static auto Button_activate(GtkButton* gtkButton, pButton* p) -> void { p->_doActivate(); }
      |                                                          ^
../hiro/core/../gtk/widget/button.cpp:5:60: error: 'p' was not declared in this scope
    5 | static auto Button_activate(GtkButton* gtkButton, pButton* p) -> void { p->_doActivate(); }
      |                                                            ^
../hiro/core/../gtk/widget/button.cpp:5:61: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto Button_activate(GtkButton* gtkButton, pButton* p) -> void { p->_doActivate(); }
      |                                                             ^
../hiro/core/../gtk/widget/button.cpp:5:63: error: expected ',' or ';' before '->' token
    5 | static auto Button_activate(GtkButton* gtkButton, pButton* p) -> void { p->_doActivate(); }
      |                                                               ^~
../hiro/core/../gtk/widget/button.cpp: In member function 'virtual void hiro::pButton::construct()':
../hiro/core/../gtk/widget/button.cpp:8:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
    8 |   gtkWidget = gtk_button_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/button.cpp:8:15: error: 'gtk_button_new' was not declared in this scope
    8 |   gtkWidget = gtk_button_new();
      |               ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:9:3: error: 'gtkButton' was not declared in this scope; did you mean 'pButton'?
    9 |   gtkButton = GTK_BUTTON(gtkWidget);
      |   ^~~~~~~~~
      |   pButton
../hiro/core/../gtk/widget/button.cpp:9:15: error: 'GTK_BUTTON' was not declared in this scope
    9 |   gtkButton = GTK_BUTTON(gtkWidget);
      |               ^~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:16:20: error: 'G_OBJECT' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkButton), "clicked", G_CALLBACK(Button_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/button.cpp:16:52: error: 'G_CALLBACK' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkButton), "clicked", G_CALLBACK(Button_activate), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:16:82: error: 'gpointer' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkButton), "clicked", G_CALLBACK(Button_activate), (gpointer)this);
      |                                                                                  ^~~~~~~~
../hiro/core/../gtk/widget/button.cpp:16:3: error: 'g_signal_connect' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkButton), "clicked", G_CALLBACK(Button_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp: In member function 'virtual void hiro::pButton::destruct()':
../hiro/core/../gtk/widget/button.cpp:22:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   22 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/button.cpp:22:3: error: 'gtk_widget_destroy' was not declared in this scope
   22 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp: In member function 'void hiro::pButton::setBordered(bool)':
../hiro/core/../gtk/widget/button.cpp:42:25: error: 'gtkButton' was not declared in this scope; did you mean 'pButton'?
   42 |   gtk_button_set_relief(gtkButton, bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                         ^~~~~~~~~
      |                         pButton
../hiro/core/../gtk/widget/button.cpp:42:47: error: 'GTK_RELIEF_NORMAL' was not declared in this scope
   42 |   gtk_button_set_relief(gtkButton, bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:42:67: error: 'GTK_RELIEF_NONE' was not declared in this scope
   42 |   gtk_button_set_relief(gtkButton, bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                                                   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:42:3: error: 'gtk_button_set_relief' was not declared in this scope
   42 |   gtk_button_set_relief(gtkButton, bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp: In member function 'void hiro::pButton::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/button.cpp:47:21: error: 'CreateImage' was not declared in this scope
   47 |     auto gtkImage = CreateImage(icon);
      |                     ^~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:48:26: error: 'gtkButton' was not declared in this scope; did you mean 'pButton'?
   48 |     gtk_button_set_image(gtkButton, (GtkWidget*)gtkImage);
      |                          ^~~~~~~~~
      |                          pButton
../hiro/core/../gtk/widget/button.cpp:48:38: error: 'GtkWidget' was not declared in this scope; did you mean 'pWidget'?
   48 |     gtk_button_set_image(gtkButton, (GtkWidget*)gtkImage);
      |                                      ^~~~~~~~~
      |                                      pWidget
../hiro/core/../gtk/widget/button.cpp:48:48: error: expected primary-expression before ')' token
   48 |     gtk_button_set_image(gtkButton, (GtkWidget*)gtkImage);
      |                                                ^
../hiro/core/../gtk/widget/button.cpp:48:5: error: 'gtk_button_set_image' was not declared in this scope
   48 |     gtk_button_set_image(gtkButton, (GtkWidget*)gtkImage);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:50:26: error: 'gtkButton' was not declared in this scope; did you mean 'pButton'?
   50 |     gtk_button_set_image(gtkButton, nullptr);
      |                          ^~~~~~~~~
      |                          pButton
../hiro/core/../gtk/widget/button.cpp:50:5: error: 'gtk_button_set_image' was not declared in this scope
   50 |     gtk_button_set_image(gtkButton, nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp: In member function 'void hiro::pButton::setOrientation(hiro::Orientation)':
../hiro/core/../gtk/widget/button.cpp:56:63: error: 'gtkButton' was not declared in this scope; did you mean 'pButton'?
   56 |   case Orientation::Horizontal: gtk_button_set_image_position(gtkButton, GTK_POS_LEFT); break;
      |                                                               ^~~~~~~~~
      |                                                               pButton
../hiro/core/../gtk/widget/button.cpp:56:74: error: 'GTK_POS_LEFT' was not declared in this scope
   56 |   case Orientation::Horizontal: gtk_button_set_image_position(gtkButton, GTK_POS_LEFT); break;
      |                                                                          ^~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:56:33: error: 'gtk_button_set_image_position' was not declared in this scope
   56 |   case Orientation::Horizontal: gtk_button_set_image_position(gtkButton, GTK_POS_LEFT); break;
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp:57:74: error: 'GTK_POS_TOP' was not declared in this scope
   57 |   case Orientation::Vertical:   gtk_button_set_image_position(gtkButton, GTK_POS_TOP);  break;
      |                                                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/button.cpp: In member function 'void hiro::pButton::setText(const nall::string&)':
../hiro/core/../gtk/widget/button.cpp:62:24: error: 'gtkButton' was not declared in this scope; did you mean 'pButton'?
   62 |   gtk_button_set_label(gtkButton, text);
      |                        ^~~~~~~~~
      |                        pButton
../hiro/core/../gtk/widget/button.cpp:62:3: error: 'gtk_button_set_label' was not declared in this scope
   62 |   gtk_button_set_label(gtkButton, text);
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:32:
../hiro/core/../gtk/widget/canvas.cpp: At global scope:
../hiro/core/../gtk/widget/canvas.cpp:6:25: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                         ^~~~~~~~~
      |                         wWidget
../hiro/core/../gtk/widget/canvas.cpp:6:36: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                    ^~~~~~
      |                                    Widget
../hiro/core/../gtk/widget/canvas.cpp:6:44: error: 'cairo_t' was not declared in this scope
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                            ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:6:53: error: 'context' was not declared in this scope; did you mean 'ucontext'?
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                                     ^~~~~~~
      |                                                     ucontext
../hiro/core/../gtk/widget/canvas.cpp:6:69: error: expected primary-expression before '*' token
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                                                     ^
../hiro/core/../gtk/widget/canvas.cpp:6:71: error: 'p' was not declared in this scope
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                                                       ^
../hiro/core/../gtk/widget/canvas.cpp:6:72: error: expression list treated as compound expression in initializer [-fpermissive]
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                                                        ^
../hiro/core/../gtk/widget/canvas.cpp:6:74: error: expected ',' or ';' before '->' token
    6 | static auto Canvas_draw(GtkWidget* widget, cairo_t* context, pCanvas* p) -> signed {
      |                                                                          ^~
../hiro/core/../gtk/widget/canvas.cpp:12:27: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                           ^~~~~~~~~
      |                           wWidget
../hiro/core/../gtk/widget/canvas.cpp:12:38: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                      ^~~~~~
      |                                      Widget
../hiro/core/../gtk/widget/canvas.cpp:12:46: error: 'GdkEventExpose' was not declared in this scope
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                              ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:12:62: error: 'event' was not declared in this scope; did you mean 'servent'?
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                                              ^~~~~
      |                                                              servent
../hiro/core/../gtk/widget/canvas.cpp:12:76: error: expected primary-expression before '*' token
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                                                            ^
../hiro/core/../gtk/widget/canvas.cpp:12:78: error: 'p' was not declared in this scope
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                                                              ^
../hiro/core/../gtk/widget/canvas.cpp:12:79: error: expression list treated as compound expression in initializer [-fpermissive]
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/canvas.cpp:12:81: error: expected ',' or ';' before '->' token
   12 | static auto Canvas_expose(GtkWidget* widget, GdkEventExpose* event, pCanvas* p) -> signed {
      |                                                                                 ^~
../hiro/core/../gtk/widget/canvas.cpp:17:29: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                             ^~~~~~~~~
      |                             wWidget
../hiro/core/../gtk/widget/canvas.cpp:17:40: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                        ^~~~~~
      |                                        Widget
../hiro/core/../gtk/widget/canvas.cpp:17:48: error: 'GdkEventKey' was not declared in this scope
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                ^~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:17:61: error: 'event' was not declared in this scope; did you mean 'servent'?
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                             ^~~~~
      |                                                             servent
../hiro/core/../gtk/widget/canvas.cpp:17:77: error: expected primary-expression before '*' token
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                             ^
../hiro/core/../gtk/widget/canvas.cpp:17:79: error: 'p' was not declared in this scope
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/canvas.cpp:17:80: error: expression list treated as compound expression in initializer [-fpermissive]
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                                ^
../hiro/core/../gtk/widget/canvas.cpp:17:82: error: expected ',' or ';' before '->' token
   17 | static auto Canvas_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                                  ^~
../hiro/core/../gtk/widget/canvas.cpp:26:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/widget/canvas.cpp:26:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/widget/canvas.cpp:26:50: error: 'GdkEventButton' was not declared in this scope
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:26:66: error: 'event' was not declared in this scope; did you mean 'servent'?
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                  ^~~~~
      |                                                                  servent
../hiro/core/../gtk/widget/canvas.cpp:26:80: error: expected primary-expression before '*' token
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                ^
../hiro/core/../gtk/widget/canvas.cpp:26:82: error: 'p' was not declared in this scope
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/canvas.cpp:26:83: error: expression list treated as compound expression in initializer [-fpermissive]
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                   ^
../hiro/core/../gtk/widget/canvas.cpp:26:85: error: expected ',' or ';' before '->' token
   26 | static auto Canvas_mousePress(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                     ^~
../hiro/core/../gtk/widget/canvas.cpp: In member function 'virtual void hiro::pCanvas::construct()':
../hiro/core/../gtk/widget/canvas.cpp:35:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   35 |   gtkWidget = gtk_drawing_area_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/canvas.cpp:35:15: error: 'gtk_drawing_area_new' was not declared in this scope
   35 |   gtkWidget = gtk_drawing_area_new();
      |               ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:37:5: error: 'GDK_BUTTON_PRESS_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:37:29: error: 'GDK_BUTTON_RELEASE_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:37:55: error: 'GDK_EXPOSURE_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                       ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:37:75: error: 'GDK_ENTER_NOTIFY_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                                           ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:37:99: error: 'GDK_LEAVE_NOTIFY_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                                                                   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:37:123: error: 'GDK_POINTER_MOTION_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:36:3: error: 'gtk_widget_add_events' was not declared in this scope
   36 |   gtk_widget_add_events(gtkWidget,
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:46:20: error: 'G_OBJECT' was not declared in this scope
   46 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Canvas_mousePress), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:46:63: error: 'G_CALLBACK' was not declared in this scope
   46 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Canvas_mousePress), (gpointer)this);
      |                                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:46:95: error: 'gpointer' was not declared in this scope
   46 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Canvas_mousePress), (gpointer)this);
      |                                                                                               ^~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:46:3: error: 'g_signal_connect' was not declared in this scope
   46 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Canvas_mousePress), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:47:108: error: expected ')' before 'this'
   47 |   g_signal_connect(G_OBJECT(gtkWidget), "button-release-event", G_CALLBACK(Widget_mouseRelease), (gpointer)this);
      |                   ~                                                                                        ^~~~
      |                                                                                                            )
../hiro/core/../gtk/widget/canvas.cpp:48:98: error: expected ')' before 'this'
   48 |   g_signal_connect(G_OBJECT(gtkWidget), "drag-data-received", G_CALLBACK(Widget_drop), (gpointer)this);
      |                   ~                                                                              ^~~~
      |                                                                                                  )
../hiro/core/../gtk/widget/canvas.cpp:52:84: error: expected ')' before 'this'
   52 |   g_signal_connect(G_OBJECT(gtkWidget), "draw", G_CALLBACK(Canvas_draw), (gpointer)this);
      |                   ~                                                                ^~~~
      |                                                                                    )
../hiro/core/../gtk/widget/canvas.cpp:54:99: error: expected ')' before 'this'
   54 |   g_signal_connect(G_OBJECT(gtkWidget), "key-press-event", G_CALLBACK(Canvas_keyPress), (gpointer)this);
      |                   ~                                                                               ^~~~
      |                                                                                                   )
../hiro/core/../gtk/widget/canvas.cpp:55:104: error: expected ')' before 'this'
   55 |   g_signal_connect(G_OBJECT(gtkWidget), "enter-notify-event", G_CALLBACK(Widget_mouseEnter), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/canvas.cpp:56:104: error: expected ')' before 'this'
   56 |   g_signal_connect(G_OBJECT(gtkWidget), "leave-notify-event", G_CALLBACK(Widget_mouseLeave), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/canvas.cpp:57:104: error: expected ')' before 'this'
   57 |   g_signal_connect(G_OBJECT(gtkWidget), "motion-notify-event", G_CALLBACK(Widget_mouseMove), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/canvas.cpp: In member function 'virtual void hiro::pCanvas::destruct()':
../hiro/core/../gtk/widget/canvas.cpp:64:6: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   64 |   if(gtkWidget) gtk_widget_destroy(gtkWidget), gtkWidget = nullptr;
      |      ^~~~~~~~~
      |      pWidget
../hiro/core/../gtk/widget/canvas.cpp:64:17: error: 'gtk_widget_destroy' was not declared in this scope
   64 |   if(gtkWidget) gtk_widget_destroy(gtkWidget), gtkWidget = nullptr;
      |                 ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:65:3: error: 'gtkParent' was not declared in this scope
   65 |   gtkParent = nullptr;
      |   ^~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp: In member function 'virtual void hiro::pCanvas::setFocusable(bool)':
../hiro/core/../gtk/widget/canvas.cpp:94:28: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   94 |   gtk_widget_set_can_focus(gtkWidget, focusable);
      |                            ^~~~~~~~~
      |                            pWidget
../hiro/core/../gtk/widget/canvas.cpp:94:3: error: 'gtk_widget_set_can_focus' was not declared in this scope
   94 |   gtk_widget_set_can_focus(gtkWidget, focusable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp: At global scope:
../hiro/core/../gtk/widget/canvas.cpp:115:6: error: 'auto hiro::pCanvas::_onDraw' is not a static data member of 'struct hiro::pCanvas'
  115 | auto pCanvas::_onDraw(cairo_t* context) -> void {
      |      ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:115:23: error: 'cairo_t' was not declared in this scope
  115 | auto pCanvas::_onDraw(cairo_t* context) -> void {
      |                       ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:115:32: error: 'context' was not declared in this scope; did you mean 'ucontext'?
  115 | auto pCanvas::_onDraw(cairo_t* context) -> void {
      |                                ^~~~~~~
      |                                ucontext
../hiro/core/../gtk/widget/canvas.cpp:115:41: error: expected ',' or ';' before '->' token
  115 | auto pCanvas::_onDraw(cairo_t* context) -> void {
      |                                         ^~
../hiro/core/../gtk/widget/canvas.cpp:146:6: error: 'auto hiro::pCanvas::_onExpose' is not a static data member of 'struct hiro::pCanvas'
  146 | auto pCanvas::_onExpose(GdkEventExpose* expose) -> void {
      |      ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:146:25: error: 'GdkEventExpose' was not declared in this scope
  146 | auto pCanvas::_onExpose(GdkEventExpose* expose) -> void {
      |                         ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:146:41: error: 'expose' was not declared in this scope; did you mean 'export'?
  146 | auto pCanvas::_onExpose(GdkEventExpose* expose) -> void {
      |                                         ^~~~~~
      |                                         export
../hiro/core/../gtk/widget/canvas.cpp:146:49: error: expected ',' or ';' before '->' token
  146 | auto pCanvas::_onExpose(GdkEventExpose* expose) -> void {
      |                                                 ^~
../hiro/core/../gtk/widget/canvas.cpp: In member function 'void hiro::pCanvas::_rasterize()':
../hiro/core/../gtk/widget/canvas.cpp:171:7: error: 'surface' was not declared in this scope
  171 |   if(!surface) surface = gdk_pixbuf_new(GDK_COLORSPACE_RGB, true, 8, width, height);
      |       ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:171:41: error: 'GDK_COLORSPACE_RGB' was not declared in this scope
  171 |   if(!surface) surface = gdk_pixbuf_new(GDK_COLORSPACE_RGB, true, 8, width, height);
      |                                         ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:171:26: error: 'gdk_pixbuf_new' was not declared in this scope
  171 |   if(!surface) surface = gdk_pixbuf_new(GDK_COLORSPACE_RGB, true, 8, width, height);
      |                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:172:50: error: 'surface' was not declared in this scope
  172 |   auto buffer = (uint32_t*)gdk_pixbuf_get_pixels(surface);
      |                                                  ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:172:28: error: 'gdk_pixbuf_get_pixels' was not declared in this scope
  172 |   auto buffer = (uint32_t*)gdk_pixbuf_get_pixels(surface);
      |                            ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp: In member function 'void hiro::pCanvas::_redraw()':
../hiro/core/../gtk/widget/canvas.cpp:196:30: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  196 |   if(gtk_widget_get_realized(gtkWidget)) {
      |                              ^~~~~~~~~
      |                              pWidget
../hiro/core/../gtk/widget/canvas.cpp:196:6: error: 'gtk_widget_get_realized' was not declared in this scope
  196 |   if(gtk_widget_get_realized(gtkWidget)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:197:32: error: 'gtk_widget_get_window' was not declared in this scope
  197 |     gdk_window_invalidate_rect(gtk_widget_get_window(gtkWidget), nullptr, true);
      |                                ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:197:5: error: 'gdk_window_invalidate_rect' was not declared in this scope
  197 |     gdk_window_invalidate_rect(gtk_widget_get_window(gtkWidget), nullptr, true);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/canvas.cpp: In member function 'void hiro::pCanvas::_release()':
../hiro/core/../gtk/widget/canvas.cpp:202:6: error: 'surface' was not declared in this scope
  202 |   if(surface) {
      |      ^~~~~~~
../hiro/core/../gtk/widget/canvas.cpp:203:5: error: 'g_object_unref' was not declared in this scope
  203 |     g_object_unref(surface);
      |     ^~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:33:
../hiro/core/../gtk/widget/check-button.cpp: At global scope:
../hiro/core/../gtk/widget/check-button.cpp:5:32: error: 'GtkToggleButton' was not declared in this scope
    5 | static auto CheckButton_toggle(GtkToggleButton* toggleButton, pCheckButton* p) -> void {
      |                                ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:5:49: error: 'toggleButton' was not declared in this scope
    5 | static auto CheckButton_toggle(GtkToggleButton* toggleButton, pCheckButton* p) -> void {
      |                                                 ^~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:5:75: error: expected primary-expression before '*' token
    5 | static auto CheckButton_toggle(GtkToggleButton* toggleButton, pCheckButton* p) -> void {
      |                                                                           ^
../hiro/core/../gtk/widget/check-button.cpp:5:77: error: 'p' was not declared in this scope
    5 | static auto CheckButton_toggle(GtkToggleButton* toggleButton, pCheckButton* p) -> void {
      |                                                                             ^
../hiro/core/../gtk/widget/check-button.cpp:5:78: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto CheckButton_toggle(GtkToggleButton* toggleButton, pCheckButton* p) -> void {
      |                                                                              ^
../hiro/core/../gtk/widget/check-button.cpp:5:80: error: expected ',' or ';' before '->' token
    5 | static auto CheckButton_toggle(GtkToggleButton* toggleButton, pCheckButton* p) -> void {
      |                                                                                ^~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'virtual void hiro::pCheckButton::construct()':
../hiro/core/../gtk/widget/check-button.cpp:11:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   11 |   gtkWidget = gtk_toggle_button_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/check-button.cpp:11:15: error: 'gtk_toggle_button_new' was not declared in this scope
   11 |   gtkWidget = gtk_toggle_button_new();
      |               ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:19:20: error: 'G_OBJECT' was not declared in this scope
   19 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckButton_toggle), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:19:52: error: 'G_CALLBACK' was not declared in this scope
   19 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckButton_toggle), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:19:85: error: 'gpointer' was not declared in this scope
   19 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckButton_toggle), (gpointer)this);
      |                                                                                     ^~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:19:3: error: 'g_signal_connect' was not declared in this scope
   19 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckButton_toggle), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'virtual void hiro::pCheckButton::destruct()':
../hiro/core/../gtk/widget/check-button.cpp:25:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   25 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/check-button.cpp:25:3: error: 'gtk_widget_destroy' was not declared in this scope
   25 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'void hiro::pCheckButton::setBordered(bool)':
../hiro/core/../gtk/widget/check-button.cpp:45:36: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   45 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                    ^~~~~~~~~
      |                                    pWidget
../hiro/core/../gtk/widget/check-button.cpp:45:25: error: 'GTK_BUTTON' was not declared in this scope
   45 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                         ^~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:45:59: error: 'GTK_RELIEF_NORMAL' was not declared in this scope
   45 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                                           ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:45:79: error: 'GTK_RELIEF_NONE' was not declared in this scope
   45 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:45:3: error: 'gtk_button_set_relief' was not declared in this scope
   45 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'void hiro::pCheckButton::setChecked(bool)':
../hiro/core/../gtk/widget/check-button.cpp:50:50: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   50 |   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkWidget), checked);
      |                                                  ^~~~~~~~~
      |                                                  pWidget
../hiro/core/../gtk/widget/check-button.cpp:50:32: error: 'GTK_TOGGLE_BUTTON' was not declared in this scope
   50 |   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkWidget), checked);
      |                                ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:50:3: error: 'gtk_toggle_button_set_active' was not declared in this scope
   50 |   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkWidget), checked);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'void hiro::pCheckButton::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/check-button.cpp:56:5: error: 'GtkImage' was not declared in this scope
   56 |     GtkImage* gtkImage = CreateImage(icon);
      |     ^~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:56:15: error: 'gtkImage' was not declared in this scope
   56 |     GtkImage* gtkImage = CreateImage(icon);
      |               ^~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:56:26: error: 'CreateImage' was not declared in this scope
   56 |     GtkImage* gtkImage = CreateImage(icon);
      |                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:57:37: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   57 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                                     ^~~~~~~~~
      |                                     pWidget
../hiro/core/../gtk/widget/check-button.cpp:57:26: error: 'GTK_BUTTON' was not declared in this scope
   57 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                          ^~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:57:50: error: 'GtkWidget' was not declared in this scope; did you mean 'pWidget'?
   57 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                                                  ^~~~~~~~~
      |                                                  pWidget
../hiro/core/../gtk/widget/check-button.cpp:57:60: error: expected primary-expression before ')' token
   57 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                                                            ^
../hiro/core/../gtk/widget/check-button.cpp:57:5: error: 'gtk_button_set_image' was not declared in this scope
   57 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:59:37: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   59 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), nullptr);
      |                                     ^~~~~~~~~
      |                                     pWidget
../hiro/core/../gtk/widget/check-button.cpp:59:26: error: 'GTK_BUTTON' was not declared in this scope
   59 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), nullptr);
      |                          ^~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:59:5: error: 'gtk_button_set_image' was not declared in this scope
   59 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'void hiro::pCheckButton::setOrientation(hiro::Orientation)':
../hiro/core/../gtk/widget/check-button.cpp:65:74: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   65 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                                                          ^~~~~~~~~
      |                                                                          pWidget
../hiro/core/../gtk/widget/check-button.cpp:65:63: error: 'GTK_BUTTON' was not declared in this scope
   65 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:65:86: error: 'GTK_POS_LEFT' was not declared in this scope
   65 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                                                                      ^~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:65:33: error: 'gtk_button_set_image_position' was not declared in this scope
   65 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:66:86: error: 'GTK_POS_TOP' was not declared in this scope
   66 |   case Orientation::Vertical:   gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_TOP);  break;
      |                                                                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp: In member function 'void hiro::pCheckButton::setText(const nall::string&)':
../hiro/core/../gtk/widget/check-button.cpp:71:35: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   71 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                                   ^~~~~~~~~
      |                                   pWidget
../hiro/core/../gtk/widget/check-button.cpp:71:24: error: 'GTK_BUTTON' was not declared in this scope
   71 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                        ^~~~~~~~~~
../hiro/core/../gtk/widget/check-button.cpp:71:3: error: 'gtk_button_set_label' was not declared in this scope
   71 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:34:
../hiro/core/../gtk/widget/check-label.cpp: At global scope:
../hiro/core/../gtk/widget/check-label.cpp:5:31: error: 'GtkToggleButton' was not declared in this scope
    5 | static auto CheckLabel_toggle(GtkToggleButton* toggleButton, pCheckLabel* p) -> void {
      |                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:5:48: error: 'toggleButton' was not declared in this scope
    5 | static auto CheckLabel_toggle(GtkToggleButton* toggleButton, pCheckLabel* p) -> void {
      |                                                ^~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:5:73: error: expected primary-expression before '*' token
    5 | static auto CheckLabel_toggle(GtkToggleButton* toggleButton, pCheckLabel* p) -> void {
      |                                                                         ^
../hiro/core/../gtk/widget/check-label.cpp:5:75: error: 'p' was not declared in this scope
    5 | static auto CheckLabel_toggle(GtkToggleButton* toggleButton, pCheckLabel* p) -> void {
      |                                                                           ^
../hiro/core/../gtk/widget/check-label.cpp:5:76: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto CheckLabel_toggle(GtkToggleButton* toggleButton, pCheckLabel* p) -> void {
      |                                                                            ^
../hiro/core/../gtk/widget/check-label.cpp:5:78: error: expected ',' or ';' before '->' token
    5 | static auto CheckLabel_toggle(GtkToggleButton* toggleButton, pCheckLabel* p) -> void {
      |                                                                              ^~
../hiro/core/../gtk/widget/check-label.cpp: In member function 'virtual void hiro::pCheckLabel::construct()':
../hiro/core/../gtk/widget/check-label.cpp:11:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   11 |   gtkWidget = gtk_check_button_new_with_label("");
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/check-label.cpp:11:15: error: 'gtk_check_button_new_with_label' was not declared in this scope
   11 |   gtkWidget = gtk_check_button_new_with_label("");
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:16:20: error: 'G_OBJECT' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckLabel_toggle), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:16:52: error: 'G_CALLBACK' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckLabel_toggle), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:16:84: error: 'gpointer' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckLabel_toggle), (gpointer)this);
      |                                                                                    ^~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:16:3: error: 'g_signal_connect' was not declared in this scope
   16 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(CheckLabel_toggle), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp: In member function 'virtual void hiro::pCheckLabel::destruct()':
../hiro/core/../gtk/widget/check-label.cpp:22:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   22 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/check-label.cpp:22:3: error: 'gtk_widget_destroy' was not declared in this scope
   22 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp: In member function 'void hiro::pCheckLabel::setChecked(bool)':
../hiro/core/../gtk/widget/check-label.cpp:32:50: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   32 |   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkWidget), checked);
      |                                                  ^~~~~~~~~
      |                                                  pWidget
../hiro/core/../gtk/widget/check-label.cpp:32:32: error: 'GTK_TOGGLE_BUTTON' was not declared in this scope
   32 |   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkWidget), checked);
      |                                ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:32:3: error: 'gtk_toggle_button_set_active' was not declared in this scope
   32 |   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkWidget), checked);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp: In member function 'void hiro::pCheckLabel::setText(const nall::string&)':
../hiro/core/../gtk/widget/check-label.cpp:37:35: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   37 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                                   ^~~~~~~~~
      |                                   pWidget
../hiro/core/../gtk/widget/check-label.cpp:37:24: error: 'GTK_BUTTON' was not declared in this scope
   37 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                        ^~~~~~~~~~
../hiro/core/../gtk/widget/check-label.cpp:37:3: error: 'gtk_button_set_label' was not declared in this scope
   37 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:35:
../hiro/core/../gtk/widget/combo-button.cpp: At global scope:
../hiro/core/../gtk/widget/combo-button.cpp:5:32: error: 'GtkComboBox' was not declared in this scope
    5 | static auto ComboButton_change(GtkComboBox* comboBox, pComboButton* p) -> void { p->_updateSelected(); }
      |                                ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:5:45: error: 'comboBox' was not declared in this scope
    5 | static auto ComboButton_change(GtkComboBox* comboBox, pComboButton* p) -> void { p->_updateSelected(); }
      |                                             ^~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:5:67: error: expected primary-expression before '*' token
    5 | static auto ComboButton_change(GtkComboBox* comboBox, pComboButton* p) -> void { p->_updateSelected(); }
      |                                                                   ^
../hiro/core/../gtk/widget/combo-button.cpp:5:69: error: 'p' was not declared in this scope
    5 | static auto ComboButton_change(GtkComboBox* comboBox, pComboButton* p) -> void { p->_updateSelected(); }
      |                                                                     ^
../hiro/core/../gtk/widget/combo-button.cpp:5:70: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto ComboButton_change(GtkComboBox* comboBox, pComboButton* p) -> void { p->_updateSelected(); }
      |                                                                      ^
../hiro/core/../gtk/widget/combo-button.cpp:5:72: error: expected ',' or ';' before '->' token
    5 | static auto ComboButton_change(GtkComboBox* comboBox, pComboButton* p) -> void { p->_updateSelected(); }
      |                                                                        ^~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'virtual void hiro::pComboButton::construct()':
../hiro/core/../gtk/widget/combo-button.cpp:8:3: error: 'gtkListStore' was not declared in this scope
    8 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:8:40: error: 'GDK_TYPE_PIXBUF' was not declared in this scope
    8 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:8:57: error: 'G_TYPE_STRING' was not declared in this scope
    8 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:8:18: error: 'gtk_list_store_new' was not declared in this scope
    8 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                  ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:9:3: error: 'gtkTreeModel' was not declared in this scope
    9 |   gtkTreeModel = GTK_TREE_MODEL(gtkListStore);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:9:18: error: 'GTK_TREE_MODEL' was not declared in this scope
    9 |   gtkTreeModel = GTK_TREE_MODEL(gtkListStore);
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:10:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   10 |   gtkWidget = gtk_combo_box_new_with_model(gtkTreeModel);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/combo-button.cpp:10:15: error: 'gtk_combo_box_new_with_model' was not declared in this scope
   10 |   gtkWidget = gtk_combo_box_new_with_model(gtkTreeModel);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:11:3: error: 'gtkComboBox' was not declared in this scope
   11 |   gtkComboBox = GTK_COMBO_BOX(gtkWidget);
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:11:17: error: 'GTK_COMBO_BOX' was not declared in this scope
   11 |   gtkComboBox = GTK_COMBO_BOX(gtkWidget);
      |                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:13:3: error: 'gtkCellIcon' was not declared in this scope
   13 |   gtkCellIcon = gtk_cell_renderer_pixbuf_new();
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:13:17: error: 'gtk_cell_renderer_pixbuf_new' was not declared in this scope
   13 |   gtkCellIcon = gtk_cell_renderer_pixbuf_new();
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:14:30: error: 'GTK_CELL_LAYOUT' was not declared in this scope
   14 |   gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkWidget), gtkCellIcon, false);
      |                              ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:14:3: error: 'gtk_cell_layout_pack_start' was not declared in this scope
   14 |   gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkWidget), gtkCellIcon, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:15:3: error: 'gtk_cell_layout_set_attributes' was not declared in this scope
   15 |   gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkWidget), gtkCellIcon, "pixbuf", 0, nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:16:3: error: 'gtkCellText' was not declared in this scope
   16 |   gtkCellText = gtk_cell_renderer_text_new();
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:16:17: error: 'gtk_cell_renderer_text_new' was not declared in this scope
   16 |   gtkCellText = gtk_cell_renderer_text_new();
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:20:20: error: 'G_OBJECT' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "changed", G_CALLBACK(ComboButton_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:20:52: error: 'G_CALLBACK' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "changed", G_CALLBACK(ComboButton_change), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:20:85: error: 'gpointer' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "changed", G_CALLBACK(ComboButton_change), (gpointer)this);
      |                                                                                     ^~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:20:3: error: 'g_signal_connect' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "changed", G_CALLBACK(ComboButton_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'virtual void hiro::pComboButton::destruct()':
../hiro/core/../gtk/widget/combo-button.cpp:26:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   26 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/combo-button.cpp:26:3: error: 'gtk_widget_destroy' was not declared in this scope
   26 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'void hiro::pComboButton::remove(hiro::sComboButtonItem)':
../hiro/core/../gtk/widget/combo-button.cpp:47:27: error: 'gtkListStore' was not declared in this scope
   47 |     gtk_list_store_remove(gtkListStore, &delegate->gtkIter);
      |                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:47:52: error: 'struct hiro::pComboButtonItem' has no member named 'gtkIter'
   47 |     gtk_list_store_remove(gtkListStore, &delegate->gtkIter);
      |                                                    ^~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:47:5: error: 'gtk_list_store_remove' was not declared in this scope
   47 |     gtk_list_store_remove(gtkListStore, &delegate->gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:48:33: error: 'gtkComboBox' was not declared in this scope
   48 |     if(gtk_combo_box_get_active(gtkComboBox) < 0) {
      |                                 ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:48:8: error: 'gtk_combo_box_get_active' was not declared in this scope
   48 |     if(gtk_combo_box_get_active(gtkComboBox) < 0) {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'virtual void hiro::pComboButton::reset()':
../hiro/core/../gtk/widget/combo-button.cpp:57:24: error: 'gtkListStore' was not declared in this scope
   57 |   gtk_list_store_clear(gtkListStore);
      |                        ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:57:3: error: 'gtk_list_store_clear' was not declared in this scope
   57 |   gtk_list_store_clear(gtkListStore);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'virtual void hiro::pComboButton::setFont(const hiro::Font&)':
../hiro/core/../gtk/widget/combo-button.cpp:63:33: error: 'create' is not a member of 'hiro::pFont'
   63 |   auto fontDescription = pFont::create(font);
      |                                 ^~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:64:25: error: 'gtkCellText' was not declared in this scope
   64 |   g_object_set(G_OBJECT(gtkCellText), "font-desc", fontDescription, nullptr);
      |                         ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:64:16: error: 'G_OBJECT' was not declared in this scope
   64 |   g_object_set(G_OBJECT(gtkCellText), "font-desc", fontDescription, nullptr);
      |                ^~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:64:3: error: 'g_object_set' was not declared in this scope
   64 |   g_object_set(G_OBJECT(gtkCellText), "font-desc", fontDescription, nullptr);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'void hiro::pComboButton::_append(hiro::sComboButtonItem)':
../hiro/core/../gtk/widget/combo-button.cpp:70:27: error: 'gtkListStore' was not declared in this scope
   70 |     gtk_list_store_append(gtkListStore, &self->gtkIter);
      |                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:70:48: error: 'struct hiro::pComboButtonItem' has no member named 'gtkIter'
   70 |     gtk_list_store_append(gtkListStore, &self->gtkIter);
      |                                                ^~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:70:5: error: 'gtk_list_store_append' was not declared in this scope
   70 |     gtk_list_store_append(gtkListStore, &self->gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:75:31: error: 'gtkComboBox' was not declared in this scope
   75 |   if(gtk_combo_box_get_active(gtkComboBox) < 0) item->setSelected();
      |                               ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:75:6: error: 'gtk_combo_box_get_active' was not declared in this scope
   75 |   if(gtk_combo_box_get_active(gtkComboBox) < 0) item->setSelected();
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp: In member function 'void hiro::pComboButton::_updateSelected()':
../hiro/core/../gtk/widget/combo-button.cpp:81:46: error: 'gtkComboBox' was not declared in this scope
   81 |   signed selected = gtk_combo_box_get_active(gtkComboBox);
      |                                              ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button.cpp:81:21: error: 'gtk_combo_box_get_active' was not declared in this scope
   81 |   signed selected = gtk_combo_box_get_active(gtkComboBox);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:36:
../hiro/core/../gtk/widget/combo-button-item.cpp: In member function 'void hiro::pComboButtonItem::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/combo-button-item.cpp:14:19: error: 'CreatePixbuf' was not declared in this scope
   14 |     auto pixbuf = CreatePixbuf(icon, true);
      |                   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp:15:32: error: 'struct hiro::pComboButton' has no member named 'gtkListStore'
   15 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 0, pixbuf, -1);
      |                                ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp:15:47: error: 'gtkIter' was not declared in this scope
   15 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 0, pixbuf, -1);
      |                                               ^~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp:15:5: error: 'gtk_list_store_set' was not declared in this scope
   15 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 0, pixbuf, -1);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp: In member function 'void hiro::pComboButtonItem::setSelected()':
../hiro/core/../gtk/widget/combo-button-item.cpp:22:38: error: 'struct hiro::pComboButton' has no member named 'gtkComboBox'
   22 |     gtk_combo_box_set_active(parent->gtkComboBox, self().offset());
      |                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp:22:5: error: 'gtk_combo_box_set_active' was not declared in this scope
   22 |     gtk_combo_box_set_active(parent->gtkComboBox, self().offset());
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp: In member function 'void hiro::pComboButtonItem::setText(const nall::string&)':
../hiro/core/../gtk/widget/combo-button-item.cpp:29:32: error: 'struct hiro::pComboButton' has no member named 'gtkListStore'
   29 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 1, text.data(), -1);
      |                                ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp:29:47: error: 'gtkIter' was not declared in this scope
   29 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 1, text.data(), -1);
      |                                               ^~~~~~~
../hiro/core/../gtk/widget/combo-button-item.cpp:29:5: error: 'gtk_list_store_set' was not declared in this scope
   29 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 1, text.data(), -1);
      |     ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:37:
../hiro/core/../gtk/widget/combo-edit.cpp: At global scope:
../hiro/core/../gtk/widget/combo-edit.cpp:5:32: error: 'GtkComboBox' was not declared in this scope
    5 | static auto ComboEdit_activate(GtkComboBox* comboBox, pComboEdit* p) -> void { p->self().doActivate(); }
      |                                ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:5:45: error: 'comboBox' was not declared in this scope
    5 | static auto ComboEdit_activate(GtkComboBox* comboBox, pComboEdit* p) -> void { p->self().doActivate(); }
      |                                             ^~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:5:65: error: expected primary-expression before '*' token
    5 | static auto ComboEdit_activate(GtkComboBox* comboBox, pComboEdit* p) -> void { p->self().doActivate(); }
      |                                                                 ^
../hiro/core/../gtk/widget/combo-edit.cpp:5:67: error: 'p' was not declared in this scope
    5 | static auto ComboEdit_activate(GtkComboBox* comboBox, pComboEdit* p) -> void { p->self().doActivate(); }
      |                                                                   ^
../hiro/core/../gtk/widget/combo-edit.cpp:5:68: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto ComboEdit_activate(GtkComboBox* comboBox, pComboEdit* p) -> void { p->self().doActivate(); }
      |                                                                    ^
../hiro/core/../gtk/widget/combo-edit.cpp:5:70: error: expected ',' or ';' before '->' token
    5 | static auto ComboEdit_activate(GtkComboBox* comboBox, pComboEdit* p) -> void { p->self().doActivate(); }
      |                                                                      ^~
../hiro/core/../gtk/widget/combo-edit.cpp:6:30: error: 'GtkComboBox' was not declared in this scope
    6 | static auto ComboEdit_change(GtkComboBox* comboBox, pComboEdit* p) -> void { p->_updateText(); }
      |                              ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:6:43: error: 'comboBox' was not declared in this scope
    6 | static auto ComboEdit_change(GtkComboBox* comboBox, pComboEdit* p) -> void { p->_updateText(); }
      |                                           ^~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:6:63: error: expected primary-expression before '*' token
    6 | static auto ComboEdit_change(GtkComboBox* comboBox, pComboEdit* p) -> void { p->_updateText(); }
      |                                                               ^
../hiro/core/../gtk/widget/combo-edit.cpp:6:65: error: 'p' was not declared in this scope
    6 | static auto ComboEdit_change(GtkComboBox* comboBox, pComboEdit* p) -> void { p->_updateText(); }
      |                                                                 ^
../hiro/core/../gtk/widget/combo-edit.cpp:6:66: error: expression list treated as compound expression in initializer [-fpermissive]
    6 | static auto ComboEdit_change(GtkComboBox* comboBox, pComboEdit* p) -> void { p->_updateText(); }
      |                                                                  ^
../hiro/core/../gtk/widget/combo-edit.cpp:6:68: error: expected ',' or ';' before '->' token
    6 | static auto ComboEdit_change(GtkComboBox* comboBox, pComboEdit* p) -> void { p->_updateText(); }
      |                                                                    ^~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'virtual void hiro::pComboEdit::construct()':
../hiro/core/../gtk/widget/combo-edit.cpp:9:3: error: 'gtkListStore' was not declared in this scope
    9 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:9:40: error: 'GDK_TYPE_PIXBUF' was not declared in this scope
    9 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:9:57: error: 'G_TYPE_STRING' was not declared in this scope
    9 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:9:18: error: 'gtk_list_store_new' was not declared in this scope
    9 |   gtkListStore = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                  ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:10:3: error: 'gtkTreeModel' was not declared in this scope
   10 |   gtkTreeModel = GTK_TREE_MODEL(gtkListStore);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:10:18: error: 'GTK_TREE_MODEL' was not declared in this scope
   10 |   gtkTreeModel = GTK_TREE_MODEL(gtkListStore);
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:11:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   11 |   gtkWidget = gtk_combo_box_new_with_model_and_entry(gtkTreeModel);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/combo-edit.cpp:11:15: error: 'gtk_combo_box_new_with_model_and_entry' was not declared in this scope
   11 |   gtkWidget = gtk_combo_box_new_with_model_and_entry(gtkTreeModel);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:12:3: error: 'gtkComboBox' was not declared in this scope
   12 |   gtkComboBox = GTK_COMBO_BOX(gtkWidget);
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:12:17: error: 'GTK_COMBO_BOX' was not declared in this scope
   12 |   gtkComboBox = GTK_COMBO_BOX(gtkWidget);
      |                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:14:25: error: 'GTK_CELL_LAYOUT' was not declared in this scope
   14 |   gtk_cell_layout_clear(GTK_CELL_LAYOUT(gtkWidget));
      |                         ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:14:3: error: 'gtk_cell_layout_clear' was not declared in this scope
   14 |   gtk_cell_layout_clear(GTK_CELL_LAYOUT(gtkWidget));
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:15:3: error: 'gtkCellIcon' was not declared in this scope
   15 |   gtkCellIcon = gtk_cell_renderer_pixbuf_new();
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:15:17: error: 'gtk_cell_renderer_pixbuf_new' was not declared in this scope
   15 |   gtkCellIcon = gtk_cell_renderer_pixbuf_new();
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:16:3: error: 'gtk_cell_layout_pack_start' was not declared in this scope
   16 |   gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(gtkWidget), gtkCellIcon, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:17:3: error: 'gtk_cell_layout_set_attributes' was not declared in this scope
   17 |   gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(gtkWidget), gtkCellIcon, "pixbuf", 0, nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:18:3: error: 'gtkCellText' was not declared in this scope
   18 |   gtkCellText = gtk_cell_renderer_text_new();
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:18:17: error: 'gtk_cell_renderer_text_new' was not declared in this scope
   18 |   gtkCellText = gtk_cell_renderer_text_new();
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:29:3: error: 'gtk_combo_box_set_entry_text_column' was not declared in this scope
   29 |   gtk_combo_box_set_entry_text_column(gtkComboBox, 1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:39:47: error: 'GTK_BIN' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(gtkComboBox))), "activate", G_CALLBACK(ComboEdit_activate), (gpointer)this);
      |                                               ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:39:29: error: 'gtk_bin_get_child' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(gtkComboBox))), "activate", G_CALLBACK(ComboEdit_activate), (gpointer)this);
      |                             ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:39:20: error: 'G_OBJECT' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(gtkComboBox))), "activate", G_CALLBACK(ComboEdit_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:39:83: error: 'G_CALLBACK' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(gtkComboBox))), "activate", G_CALLBACK(ComboEdit_activate), (gpointer)this);
      |                                                                                   ^~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:39:116: error: 'gpointer' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(gtkComboBox))), "activate", G_CALLBACK(ComboEdit_activate), (gpointer)this);
      |                                                                                                                    ^~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:39:3: error: 'g_signal_connect' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(gtkComboBox))), "activate", G_CALLBACK(ComboEdit_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:40:92: error: expected ')' before 'this'
   40 |   g_signal_connect(G_OBJECT(gtkWidget), "changed", G_CALLBACK(ComboEdit_change), (gpointer)this);
      |                   ~                                                                        ^~~~
      |                                                                                            )
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'virtual void hiro::pComboEdit::destruct()':
../hiro/core/../gtk/widget/combo-edit.cpp:46:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   46 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/combo-edit.cpp:46:3: error: 'gtk_widget_destroy' was not declared in this scope
   46 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::append(hiro::sComboEditItem)':
../hiro/core/../gtk/widget/combo-edit.cpp:52:27: error: 'gtkListStore' was not declared in this scope
   52 |     gtk_list_store_append(gtkListStore, &self->gtkIter);
      |                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:52:48: error: 'struct hiro::pComboEditItem' has no member named 'gtkIter'
   52 |     gtk_list_store_append(gtkListStore, &self->gtkIter);
      |                                                ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:52:5: error: 'gtk_list_store_append' was not declared in this scope
   52 |     gtk_list_store_append(gtkListStore, &self->gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::remove(hiro::sComboEditItem)':
../hiro/core/../gtk/widget/combo-edit.cpp:74:27: error: 'gtkListStore' was not declared in this scope
   74 |     gtk_list_store_remove(gtkListStore, &delegate->gtkIter);
      |                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:74:52: error: 'struct hiro::pComboEditItem' has no member named 'gtkIter'
   74 |     gtk_list_store_remove(gtkListStore, &delegate->gtkIter);
      |                                                    ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:74:5: error: 'gtk_list_store_remove' was not declared in this scope
   74 |     gtk_list_store_remove(gtkListStore, &delegate->gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'virtual void hiro::pComboEdit::reset()':
../hiro/core/../gtk/widget/combo-edit.cpp:81:24: error: 'gtkListStore' was not declared in this scope
   81 |   gtk_list_store_clear(gtkListStore);
      |                        ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:81:3: error: 'gtk_list_store_clear' was not declared in this scope
   81 |   gtk_list_store_clear(gtkListStore);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/combo-edit.cpp:86:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   86 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/combo-edit.cpp:87:52: error: 'gtkComboBox' was not declared in this scope
   87 |   gtk_widget_modify_base(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                    ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:87:44: error: 'GTK_BIN' was not declared in this scope
   87 |   gtk_widget_modify_base(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                            ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:87:26: error: 'gtk_bin_get_child' was not declared in this scope
   87 |   gtk_widget_modify_base(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:87:67: error: 'GTK_STATE_NORMAL' was not declared in this scope
   87 |   gtk_widget_modify_base(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:87:94: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   87 |   gtk_widget_modify_base(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                                              ^~~~~~~~
      |                                                                                              Color
../hiro/core/../gtk/widget/combo-edit.cpp:87:3: error: 'gtk_widget_modify_base' was not declared in this scope
   87 |   gtk_widget_modify_base(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::setEditable(bool)':
../hiro/core/../gtk/widget/combo-edit.cpp:91:68: error: 'gtkComboBox' was not declared in this scope
   91 |   gtk_editable_set_editable(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(gtkComboBox))), editable);
      |                                                                    ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:91:60: error: 'GTK_BIN' was not declared in this scope
   91 |   gtk_editable_set_editable(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(gtkComboBox))), editable);
      |                                                            ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:91:42: error: 'gtk_bin_get_child' was not declared in this scope
   91 |   gtk_editable_set_editable(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(gtkComboBox))), editable);
      |                                          ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:91:29: error: 'GTK_EDITABLE' was not declared in this scope
   91 |   gtk_editable_set_editable(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(gtkComboBox))), editable);
      |                             ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:91:3: error: 'gtk_editable_set_editable' was not declared in this scope
   91 |   gtk_editable_set_editable(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(gtkComboBox))), editable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/combo-edit.cpp:95:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   95 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/combo-edit.cpp:96:52: error: 'gtkComboBox' was not declared in this scope
   96 |   gtk_widget_modify_text(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                    ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:96:44: error: 'GTK_BIN' was not declared in this scope
   96 |   gtk_widget_modify_text(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                            ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:96:26: error: 'gtk_bin_get_child' was not declared in this scope
   96 |   gtk_widget_modify_text(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:96:67: error: 'GTK_STATE_NORMAL' was not declared in this scope
   96 |   gtk_widget_modify_text(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:96:94: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   96 |   gtk_widget_modify_text(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                                              ^~~~~~~~
      |                                                                                              Color
../hiro/core/../gtk/widget/combo-edit.cpp:96:3: error: 'gtk_widget_modify_text' was not declared in this scope
   96 |   gtk_widget_modify_text(gtk_bin_get_child(GTK_BIN(gtkComboBox)), GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'virtual void hiro::pComboEdit::setFont(const hiro::Font&)':
../hiro/core/../gtk/widget/combo-edit.cpp:101:33: error: 'create' is not a member of 'hiro::pFont'
  101 |   auto fontDescription = pFont::create(font);
      |                                 ^~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:102:25: error: 'gtkCellText' was not declared in this scope
  102 |   g_object_set(G_OBJECT(gtkCellText), "font-desc", fontDescription, nullptr);
      |                         ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:102:16: error: 'G_OBJECT' was not declared in this scope
  102 |   g_object_set(G_OBJECT(gtkCellText), "font-desc", fontDescription, nullptr);
      |                ^~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:102:3: error: 'g_object_set' was not declared in this scope
  102 |   g_object_set(G_OBJECT(gtkCellText), "font-desc", fontDescription, nullptr);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::setText(const nall::string&)':
../hiro/core/../gtk/widget/combo-edit.cpp:107:58: error: 'gtkComboBox' was not declared in this scope
  107 |   gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))), text);
      |                                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:107:50: error: 'GTK_BIN' was not declared in this scope
  107 |   gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))), text);
      |                                                  ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:107:32: error: 'gtk_bin_get_child' was not declared in this scope
  107 |   gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))), text);
      |                                ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:107:22: error: 'GTK_ENTRY' was not declared in this scope; did you mean 'AT_ENTRY'?
  107 |   gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))), text);
      |                      ^~~~~~~~~
      |                      AT_ENTRY
../hiro/core/../gtk/widget/combo-edit.cpp:107:3: error: 'gtk_entry_set_text' was not declared in this scope
  107 |   gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))), text);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp: In member function 'void hiro::pComboEdit::_updateText()':
../hiro/core/../gtk/widget/combo-edit.cpp:112:72: error: 'gtkComboBox' was not declared in this scope
  112 |   string text = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))));
      |                                                                        ^~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:112:64: error: 'GTK_BIN' was not declared in this scope
  112 |   string text = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))));
      |                                                                ^~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:112:46: error: 'gtk_bin_get_child' was not declared in this scope
  112 |   string text = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))));
      |                                              ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit.cpp:112:36: error: 'GTK_ENTRY' was not declared in this scope; did you mean 'AT_ENTRY'?
  112 |   string text = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))));
      |                                    ^~~~~~~~~
      |                                    AT_ENTRY
../hiro/core/../gtk/widget/combo-edit.cpp:112:17: error: 'gtk_entry_get_text' was not declared in this scope
  112 |   string text = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gtkComboBox))));
      |                 ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:38:
../hiro/core/../gtk/widget/combo-edit-item.cpp: In member function 'void hiro::pComboEditItem::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/combo-edit-item.cpp:13:19: error: 'CreatePixbuf' was not declared in this scope
   13 |     auto pixbuf = CreatePixbuf(icon, true);
      |                   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit-item.cpp:14:32: error: 'struct hiro::pComboEdit' has no member named 'gtkListStore'
   14 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 0, pixbuf, -1);
      |                                ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit-item.cpp:14:47: error: 'gtkIter' was not declared in this scope
   14 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 0, pixbuf, -1);
      |                                               ^~~~~~~
../hiro/core/../gtk/widget/combo-edit-item.cpp:14:5: error: 'gtk_list_store_set' was not declared in this scope
   14 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 0, pixbuf, -1);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit-item.cpp: In member function 'void hiro::pComboEditItem::setText(const nall::string&)':
../hiro/core/../gtk/widget/combo-edit-item.cpp:20:32: error: 'struct hiro::pComboEdit' has no member named 'gtkListStore'
   20 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 1, text.data(), -1);
      |                                ^~~~~~~~~~~~
../hiro/core/../gtk/widget/combo-edit-item.cpp:20:47: error: 'gtkIter' was not declared in this scope
   20 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 1, text.data(), -1);
      |                                               ^~~~~~~
../hiro/core/../gtk/widget/combo-edit-item.cpp:20:5: error: 'gtk_list_store_set' was not declared in this scope
   20 |     gtk_list_store_set(parent->gtkListStore, &gtkIter, 1, text.data(), -1);
      |     ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:39:
../hiro/core/../gtk/widget/console.cpp: At global scope:
../hiro/core/../gtk/widget/console.cpp:5:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/widget/console.cpp:5:40: error: expected primary-expression before ',' token
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                        ^
../hiro/core/../gtk/widget/console.cpp:5:42: error: 'GdkEventKey' was not declared in this scope
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:5:55: error: 'event' was not declared in this scope; did you mean 'servent'?
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                                       ^~~~~
      |                                                       servent
../hiro/core/../gtk/widget/console.cpp:5:70: error: expected primary-expression before '*' token
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                                                      ^
../hiro/core/../gtk/widget/console.cpp:5:72: error: 'p' was not declared in this scope
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                                                        ^
../hiro/core/../gtk/widget/console.cpp:5:73: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                                                         ^
../hiro/core/../gtk/widget/console.cpp:5:75: error: expected ',' or ';' before '->' token
    5 | static auto Console_keyPress(GtkWidget*, GdkEventKey* event, pConsole* p) -> signed {
      |                                                                           ^~
../hiro/core/../gtk/widget/console.cpp: In member function 'virtual void hiro::pConsole::construct()':
../hiro/core/../gtk/widget/console.cpp:10:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   10 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/console.cpp:10:15: error: 'gtk_scrolled_window_new' was not declared in this scope
   10 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:11:34: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   11 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
      |                                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:11:66: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   11 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
      |                                                                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:11:88: error: 'GTK_POLICY_ALWAYS' was not declared in this scope
   11 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
      |                                                                                        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:11:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   11 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:12:71: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   12 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(gtkWidget), GTK_SHADOW_ETCHED_IN);
      |                                                                       ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:12:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   12 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(gtkWidget), GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:14:3: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   14 |   subWidget = gtk_text_view_new();
      |   ^~~~~~~~~
      |   sWidget
../hiro/core/../gtk/widget/console.cpp:14:15: error: 'gtk_text_view_new' was not declared in this scope
   14 |   subWidget = gtk_text_view_new();
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:15:3: error: 'gtk_widget_show' was not declared in this scope
   15 |   gtk_widget_show(subWidget);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:16:30: error: 'GTK_TEXT_VIEW' was not declared in this scope
   16 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), false);
      |                              ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:16:3: error: 'gtk_text_view_set_editable' was not declared in this scope
   16 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:17:57: error: 'GTK_WRAP_NONE' was not declared in this scope
   17 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_NONE);
      |                                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:17:3: error: 'gtk_text_view_set_wrap_mode' was not declared in this scope
   17 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:18:21: error: 'GTK_CONTAINER' was not declared in this scope
   18 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:18:3: error: 'gtk_container_add' was not declared in this scope
   18 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:20:3: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   20 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |   ^~~~~~~~~~
      |   setbuffer
../hiro/core/../gtk/widget/console.cpp:20:16: error: 'gtk_text_view_get_buffer' was not declared in this scope
   20 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:25:20: error: 'G_OBJECT' was not declared in this scope
   25 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(Console_keyPress), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/console.cpp:25:60: error: 'G_CALLBACK' was not declared in this scope
   25 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(Console_keyPress), (gpointer)this);
      |                                                            ^~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:25:91: error: 'gpointer' was not declared in this scope
   25 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(Console_keyPress), (gpointer)this);
      |                                                                                           ^~~~~~~~
../hiro/core/../gtk/widget/console.cpp:25:3: error: 'g_signal_connect' was not declared in this scope
   25 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(Console_keyPress), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'virtual void hiro::pConsole::destruct()':
../hiro/core/../gtk/widget/console.cpp:31:22: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   31 |   gtk_widget_destroy(subWidget);
      |                      ^~~~~~~~~
      |                      sWidget
../hiro/core/../gtk/widget/console.cpp:31:3: error: 'gtk_widget_destroy' was not declared in this scope
   31 |   gtk_widget_destroy(subWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:32:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   32 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/console.cpp: In member function 'void hiro::pConsole::print(const nall::string&)':
../hiro/core/../gtk/widget/console.cpp:37:3: error: 'GtkTextIter' was not declared in this scope
   37 |   GtkTextIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:38:43: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   38 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &iter, gtk_text_buffer_get_line_count(textBuffer), 0);
      |                                           ^~~~~~~~~~
      |                                           setbuffer
../hiro/core/../gtk/widget/console.cpp:38:56: error: 'iter' was not declared in this scope
   38 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &iter, gtk_text_buffer_get_line_count(textBuffer), 0);
      |                                                        ^~~~
../hiro/core/../gtk/widget/console.cpp:38:62: error: 'gtk_text_buffer_get_line_count' was not declared in this scope
   38 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &iter, gtk_text_buffer_get_line_count(textBuffer), 0);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:38:3: error: 'gtk_text_buffer_get_iter_at_line_offset' was not declared in this scope
   38 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &iter, gtk_text_buffer_get_line_count(textBuffer), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:39:3: error: 'gtk_text_buffer_insert' was not declared in this scope
   39 |   gtk_text_buffer_insert(textBuffer, &iter, text, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'virtual void hiro::pConsole::reset()':
../hiro/core/../gtk/widget/console.cpp:45:28: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   45 |   gtk_text_buffer_set_text(textBuffer, state().prompt, -1);
      |                            ^~~~~~~~~~
      |                            setbuffer
../hiro/core/../gtk/widget/console.cpp:45:3: error: 'gtk_text_buffer_set_text' was not declared in this scope
   45 |   gtk_text_buffer_set_text(textBuffer, state().prompt, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'void hiro::pConsole::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/console.cpp:50:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   50 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/console.cpp:51:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/console.cpp:51:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:51:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/console.cpp:51:3: error: 'gtk_widget_modify_base' was not declared in this scope
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'void hiro::pConsole::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/console.cpp:55:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   55 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/console.cpp:56:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   56 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/console.cpp:56:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   56 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:56:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   56 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/console.cpp:56:3: error: 'gtk_widget_modify_text' was not declared in this scope
   56 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'void hiro::pConsole::setPrompt(const nall::string&)':
../hiro/core/../gtk/widget/console.cpp:61:3: error: 'GtkTextIter' was not declared in this scope
   61 |   GtkTextIter lhs, rhs;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:62:43: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   62 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &lhs, gtk_text_buffer_get_line_count(textBuffer), 0);
      |                                           ^~~~~~~~~~
      |                                           setbuffer
../hiro/core/../gtk/widget/console.cpp:62:56: error: 'lhs' was not declared in this scope
   62 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &lhs, gtk_text_buffer_get_line_count(textBuffer), 0);
      |                                                        ^~~
../hiro/core/../gtk/widget/console.cpp:62:61: error: 'gtk_text_buffer_get_line_count' was not declared in this scope
   62 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &lhs, gtk_text_buffer_get_line_count(textBuffer), 0);
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:62:3: error: 'gtk_text_buffer_get_iter_at_line_offset' was not declared in this scope
   62 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &lhs, gtk_text_buffer_get_line_count(textBuffer), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:63:56: error: 'rhs' was not declared in this scope
   63 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &rhs, gtk_text_buffer_get_line_count(textBuffer), previousPrompt.size());
      |                                                        ^~~
../hiro/core/../gtk/widget/console.cpp:64:3: error: 'gtk_text_buffer_delete' was not declared in this scope
   64 |   gtk_text_buffer_delete(textBuffer, &lhs, &rhs);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:66:3: error: 'gtk_text_buffer_insert' was not declared in this scope
   66 |   gtk_text_buffer_insert(textBuffer, &lhs, previousPrompt = prompt, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'bool hiro::pConsole::_keyPress(unsigned int, unsigned int)':
../hiro/core/../gtk/widget/console.cpp:71:14: error: 'GDK_CONTROL_MASK' was not declared in this scope
   71 |   if(mask & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) return false;  //allow actions such as Ctrl+C (copy)
      |              ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:71:33: error: 'GDK_MOD1_MASK' was not declared in this scope
   71 |   if(mask & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) return false;  //allow actions such as Ctrl+C (copy)
      |                                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:71:49: error: 'GDK_SUPER_MASK' was not declared in this scope
   71 |   if(mask & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) return false;  //allow actions such as Ctrl+C (copy)
      |                                                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:73:3: error: 'GtkTextMark' was not declared in this scope
   73 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:73:16: error: 'mark' was not declared in this scope; did you mean 'mask'?
   73 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                ^~~~
      |                mask
../hiro/core/../gtk/widget/console.cpp:73:48: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   73 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                                                ^~~~~~~~~~
      |                                                setbuffer
../hiro/core/../gtk/widget/console.cpp:73:23: error: 'gtk_text_buffer_get_mark' was not declared in this scope
   73 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:74:3: error: 'GtkTextIter' was not declared in this scope
   74 |   GtkTextIter start, cursor, end;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:75:56: error: 'start' was not declared in this scope; did you mean 'stat'?
   75 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &start, gtk_text_buffer_get_line_count(textBuffer), state().prompt.size());
      |                                                        ^~~~~
      |                                                        stat
../hiro/core/../gtk/widget/console.cpp:75:63: error: 'gtk_text_buffer_get_line_count' was not declared in this scope
   75 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &start, gtk_text_buffer_get_line_count(textBuffer), state().prompt.size());
      |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:75:3: error: 'gtk_text_buffer_get_iter_at_line_offset' was not declared in this scope
   75 |   gtk_text_buffer_get_iter_at_line_offset(textBuffer, &start, gtk_text_buffer_get_line_count(textBuffer), state().prompt.size());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:76:49: error: 'cursor' was not declared in this scope
   76 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &cursor, mark);
      |                                                 ^~~~~~
../hiro/core/../gtk/widget/console.cpp:76:3: error: 'gtk_text_buffer_get_iter_at_mark' was not declared in this scope
   76 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &cursor, mark);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:77:45: error: 'end' was not declared in this scope; did you mean 'std::end'?
   77 |   gtk_text_buffer_get_end_iter(textBuffer, &end);
      |                                             ^~~
      |                                             std::end
In file included from /opt/tools/gcc13/include/c++/13.2.0/utility:73,
                 from ../nall/platform.hpp:29:
/opt/tools/gcc13/include/c++/13.2.0/initializer_list:99:5: note: 'std::end' declared here
   99 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
../hiro/core/../gtk/widget/console.cpp:77:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
   77 |   gtk_text_buffer_get_end_iter(textBuffer, &end);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:79:18: error: 'GDK_KEY_Return' was not declared in this scope
   79 |   if(scancode == GDK_KEY_Return || scancode == GDK_KEY_KP_Enter) {
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:79:48: error: 'GDK_KEY_KP_Enter' was not declared in this scope
   79 |   if(scancode == GDK_KEY_Return || scancode == GDK_KEY_KP_Enter) {
      |                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:80:18: error: 'gtk_text_buffer_get_text' was not declared in this scope
   80 |     char* temp = gtk_text_buffer_get_text(textBuffer, &start, &end, true);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:82:5: error: 'g_free' was not declared in this scope; did you mean 'free'?
   82 |     g_free(temp);
      |     ^~~~~~
      |     free
../hiro/core/../gtk/widget/console.cpp:83:5: error: 'gtk_text_buffer_insert' was not declared in this scope
   83 |     gtk_text_buffer_insert(textBuffer, &end, string{"\n", state().prompt}, -1);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:92:18: error: 'GDK_KEY_Up' was not declared in this scope
   92 |   if(scancode == GDK_KEY_Up) {
      |                  ^~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:93:5: error: 'gtk_text_buffer_delete' was not declared in this scope
   93 |     gtk_text_buffer_delete(textBuffer, &start, &end);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:96:7: error: 'gtk_text_buffer_insert' was not declared in this scope
   96 |       gtk_text_buffer_insert(textBuffer, &end, history[historyOffset++], -1);
      |       ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:102:18: error: 'GDK_KEY_Down' was not declared in this scope
  102 |   if(scancode == GDK_KEY_Down) {
      |                  ^~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:103:5: error: 'gtk_text_buffer_delete' was not declared in this scope
  103 |     gtk_text_buffer_delete(textBuffer, &start, &end);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:106:7: error: 'gtk_text_buffer_insert' was not declared in this scope
  106 |       gtk_text_buffer_insert(textBuffer, &end, history[--historyOffset], -1);
      |       ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:112:18: error: 'GDK_KEY_Left' was not declared in this scope
  112 |   if(scancode == GDK_KEY_Left) {
      |                  ^~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:113:8: error: 'gtk_text_iter_get_offset' was not declared in this scope
  113 |     if(gtk_text_iter_get_offset(&cursor) <= gtk_text_iter_get_offset(&start)) {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:114:7: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  114 |       gtk_text_buffer_place_cursor(textBuffer, &start);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:116:7: error: 'gtk_text_iter_set_offset' was not declared in this scope
  116 |       gtk_text_iter_set_offset(&cursor, gtk_text_iter_get_offset(&cursor) - 1);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:117:7: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  117 |       gtk_text_buffer_place_cursor(textBuffer, &cursor);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:123:18: error: 'GDK_KEY_Right' was not declared in this scope
  123 |   if(scancode == GDK_KEY_Right) {
      |                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:124:8: error: 'gtk_text_iter_get_offset' was not declared in this scope
  124 |     if(gtk_text_iter_get_offset(&cursor) < gtk_text_iter_get_offset(&start)) {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:125:7: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  125 |       gtk_text_buffer_place_cursor(textBuffer, &end);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:127:7: error: 'gtk_text_iter_set_offset' was not declared in this scope
  127 |       gtk_text_iter_set_offset(&cursor, gtk_text_iter_get_offset(&cursor) + 1);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:128:7: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  128 |       gtk_text_buffer_place_cursor(textBuffer, &cursor);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:134:18: error: 'GDK_KEY_Home' was not declared in this scope
  134 |   if(scancode == GDK_KEY_Home) {
      |                  ^~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:135:5: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  135 |     gtk_text_buffer_place_cursor(textBuffer, &start);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:140:18: error: 'GDK_KEY_End' was not declared in this scope
  140 |   if(scancode == GDK_KEY_End) {
      |                  ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:141:5: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  141 |     gtk_text_buffer_place_cursor(textBuffer, &end);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:146:18: error: 'GDK_KEY_BackSpace' was not declared in this scope
  146 |   if(scancode == GDK_KEY_BackSpace) {
      |                  ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:147:8: error: 'gtk_text_iter_get_offset' was not declared in this scope
  147 |     if(gtk_text_iter_get_offset(&cursor) <= gtk_text_iter_get_offset(&start)) return true;
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:148:16: error: expected ';' before 'lhs'
  148 |     GtkTextIter lhs = cursor;
      |                ^~~~
      |                ;
../hiro/core/../gtk/widget/console.cpp:149:31: error: 'lhs' was not declared in this scope
  149 |     gtk_text_iter_set_offset(&lhs, gtk_text_iter_get_offset(&cursor) - 1);
      |                               ^~~
../hiro/core/../gtk/widget/console.cpp:149:36: error: 'gtk_text_iter_get_offset' was not declared in this scope
  149 |     gtk_text_iter_set_offset(&lhs, gtk_text_iter_get_offset(&cursor) - 1);
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:149:5: error: 'gtk_text_iter_set_offset' was not declared in this scope
  149 |     gtk_text_iter_set_offset(&lhs, gtk_text_iter_get_offset(&cursor) - 1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:150:5: error: 'gtk_text_buffer_delete' was not declared in this scope
  150 |     gtk_text_buffer_delete(textBuffer, &lhs, &cursor);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:155:18: error: 'GDK_KEY_Delete' was not declared in this scope
  155 |   if(scancode == GDK_KEY_Delete) {
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:156:8: error: 'gtk_text_iter_get_offset' was not declared in this scope
  156 |     if(gtk_text_iter_get_offset(&cursor) < gtk_text_iter_get_offset(&start)) return true;
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:157:8: error: 'gtk_text_iter_get_offset' was not declared in this scope
  157 |     if(gtk_text_iter_get_offset(&cursor) == gtk_text_iter_get_offset(&end)) return true;
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:158:16: error: expected ';' before 'rhs'
  158 |     GtkTextIter rhs = cursor;
      |                ^~~~
      |                ;
../hiro/core/../gtk/widget/console.cpp:159:31: error: 'rhs' was not declared in this scope
  159 |     gtk_text_iter_set_offset(&rhs, gtk_text_iter_get_offset(&cursor) + 1);
      |                               ^~~
../hiro/core/../gtk/widget/console.cpp:159:36: error: 'gtk_text_iter_get_offset' was not declared in this scope
  159 |     gtk_text_iter_set_offset(&rhs, gtk_text_iter_get_offset(&cursor) + 1);
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:159:5: error: 'gtk_text_iter_set_offset' was not declared in this scope
  159 |     gtk_text_iter_set_offset(&rhs, gtk_text_iter_get_offset(&cursor) + 1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:160:5: error: 'gtk_text_buffer_delete' was not declared in this scope
  160 |     gtk_text_buffer_delete(textBuffer, &cursor, &rhs);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:166:8: error: 'gtk_text_iter_get_offset' was not declared in this scope
  166 |     if(gtk_text_iter_get_offset(&cursor) < gtk_text_iter_get_offset(&start)) return true;
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:167:5: error: 'gtk_text_buffer_insert' was not declared in this scope
  167 |     gtk_text_buffer_insert(textBuffer, &cursor, string{(char)scancode}, -1);
      |     ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'void hiro::pConsole::_seekToEnd()':
../hiro/core/../gtk/widget/console.cpp:176:3: error: 'GtkTextIter' was not declared in this scope
  176 |   GtkTextIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:177:32: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  177 |   gtk_text_buffer_get_end_iter(textBuffer, &iter);
      |                                ^~~~~~~~~~
      |                                setbuffer
../hiro/core/../gtk/widget/console.cpp:177:45: error: 'iter' was not declared in this scope
  177 |   gtk_text_buffer_get_end_iter(textBuffer, &iter);
      |                                             ^~~~
../hiro/core/../gtk/widget/console.cpp:177:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
  177 |   gtk_text_buffer_get_end_iter(textBuffer, &iter);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:178:3: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  178 |   gtk_text_buffer_place_cursor(textBuffer, &iter);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp: In member function 'void hiro::pConsole::_seekToMark()':
../hiro/core/../gtk/widget/console.cpp:183:3: error: 'GtkTextMark' was not declared in this scope
  183 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:183:16: error: 'mark' was not declared in this scope
  183 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                ^~~~
../hiro/core/../gtk/widget/console.cpp:183:48: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  183 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                                                ^~~~~~~~~~
      |                                                setbuffer
../hiro/core/../gtk/widget/console.cpp:183:23: error: 'gtk_text_buffer_get_mark' was not declared in this scope
  183 |   GtkTextMark* mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:184:52: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  184 |   gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(subWidget), mark);
      |                                                    ^~~~~~~~~
      |                                                    sWidget
../hiro/core/../gtk/widget/console.cpp:184:38: error: 'GTK_TEXT_VIEW' was not declared in this scope
  184 |   gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(subWidget), mark);
      |                                      ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/console.cpp:184:3: error: 'gtk_text_view_scroll_mark_onscreen' was not declared in this scope
  184 |   gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(subWidget), mark);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:40:
../hiro/core/../gtk/widget/frame.cpp: In member function 'virtual void hiro::pFrame::construct()':
../hiro/core/../gtk/widget/frame.cpp:6:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
    6 |   gtkWidget = gtk_frame_new(nullptr);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/frame.cpp:6:15: error: 'gtk_frame_new' was not declared in this scope
    6 |   gtkWidget = gtk_frame_new(nullptr);
      |               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:7:3: error: 'gtkLabel' was not declared in this scope; did you mean 'wLabel'?
    7 |   gtkLabel = gtk_label_new("");
      |   ^~~~~~~~
      |   wLabel
../hiro/core/../gtk/widget/frame.cpp:7:14: error: 'gtk_label_new' was not declared in this scope
    7 |   gtkLabel = gtk_label_new("");
      |              ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:8:30: error: 'GTK_FRAME' was not declared in this scope
    8 |   gtk_frame_set_label_widget(GTK_FRAME(gtkWidget), gtkLabel);
      |                              ^~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:8:3: error: 'gtk_frame_set_label_widget' was not declared in this scope
    8 |   gtk_frame_set_label_widget(GTK_FRAME(gtkWidget), gtkLabel);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:9:3: error: 'gtk_widget_show' was not declared in this scope
    9 |   gtk_widget_show(gtkLabel);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:10:3: error: 'gtkChild' was not declared in this scope
   10 |   gtkChild = gtk_fixed_new();
      |   ^~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:10:14: error: 'gtk_fixed_new' was not declared in this scope
   10 |   gtkChild = gtk_fixed_new();
      |              ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:11:21: error: 'GTK_CONTAINER' was not declared in this scope
   11 |   gtk_container_add(GTK_CONTAINER(gtkWidget), gtkChild);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:11:3: error: 'gtk_container_add' was not declared in this scope
   11 |   gtk_container_add(GTK_CONTAINER(gtkWidget), gtkChild);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp: In member function 'virtual void hiro::pFrame::destruct()':
../hiro/core/../gtk/widget/frame.cpp:20:22: error: 'gtkChild' was not declared in this scope
   20 |   gtk_widget_destroy(gtkChild);
      |                      ^~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:20:3: error: 'gtk_widget_destroy' was not declared in this scope
   20 |   gtk_widget_destroy(gtkChild);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:21:22: error: 'gtkLabel' was not declared in this scope; did you mean 'wLabel'?
   21 |   gtk_widget_destroy(gtkLabel);
      |                      ^~~~~~~~
      |                      wLabel
../hiro/core/../gtk/widget/frame.cpp:22:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   22 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/frame.cpp: At global scope:
../hiro/core/../gtk/widget/frame.cpp:32:44: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   32 | auto pFrame::container(mWidget& widget) -> GtkWidget* {
      |                                            ^~~~~~~~~
      |                                            pWidget
../hiro/core/../gtk/widget/frame.cpp:32:53: error: expected initializer before '*' token
   32 | auto pFrame::container(mWidget& widget) -> GtkWidget* {
      |                                                     ^
../hiro/core/../gtk/widget/frame.cpp: In member function 'virtual void hiro::pFrame::setFont(const hiro::Font&)':
../hiro/core/../gtk/widget/frame.cpp:51:18: error: 'gtkLabel' was not declared in this scope; did you mean 'wLabel'?
   51 |   pFont::setFont(gtkLabel, font);
      |                  ^~~~~~~~
      |                  wLabel
../hiro/core/../gtk/widget/frame.cpp: In member function 'void hiro::pFrame::setText(const nall::string&)':
../hiro/core/../gtk/widget/frame.cpp:77:32: error: 'gtkLabel' was not declared in this scope; did you mean 'wLabel'?
   77 |   gtk_label_set_text(GTK_LABEL(gtkLabel), text);
      |                                ^~~~~~~~
      |                                wLabel
../hiro/core/../gtk/widget/frame.cpp:77:22: error: 'GTK_LABEL' was not declared in this scope
   77 |   gtk_label_set_text(GTK_LABEL(gtkLabel), text);
      |                      ^~~~~~~~~
../hiro/core/../gtk/widget/frame.cpp:77:3: error: 'gtk_label_set_text' was not declared in this scope
   77 |   gtk_label_set_text(GTK_LABEL(gtkLabel), text);
      |   ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:41:
../hiro/core/../gtk/widget/hex-edit.cpp: At global scope:
../hiro/core/../gtk/widget/hex-edit.cpp:5:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/widget/hex-edit.cpp:5:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/widget/hex-edit.cpp:5:49: error: 'GdkEventKey' was not declared in this scope
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                                 ^~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:5:62: error: 'event' was not declared in this scope; did you mean 'servent'?
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                                              ^~~~~
      |                                                              servent
../hiro/core/../gtk/widget/hex-edit.cpp:5:77: error: expected primary-expression before '*' token
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                                                             ^
../hiro/core/../gtk/widget/hex-edit.cpp:5:79: error: 'p' was not declared in this scope
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/hex-edit.cpp:5:80: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                                                                ^
../hiro/core/../gtk/widget/hex-edit.cpp:5:82: error: expected ',' or ';' before '->' token
    5 | static auto HexEdit_keyPress(GtkWidget* widget, GdkEventKey* event, pHexEdit* p) -> signed {
      |                                                                                  ^~
../hiro/core/../gtk/widget/hex-edit.cpp:9:33: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                 ^~~~~~~~~
      |                                 wWidget
../hiro/core/../gtk/widget/hex-edit.cpp:9:44: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                            ^~~~~~
      |                                            Widget
../hiro/core/../gtk/widget/hex-edit.cpp:9:52: error: 'GdkEventScroll' was not declared in this scope
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                                    ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:9:68: error: 'event' was not declared in this scope; did you mean 'servent'?
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                                                    ^~~~~
      |                                                                    servent
../hiro/core/../gtk/widget/hex-edit.cpp:9:83: error: expected primary-expression before '*' token
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                                                                   ^
../hiro/core/../gtk/widget/hex-edit.cpp:9:85: error: 'p' was not declared in this scope
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                                                                     ^
../hiro/core/../gtk/widget/hex-edit.cpp:9:86: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                                                                      ^
../hiro/core/../gtk/widget/hex-edit.cpp:9:88: error: expected ',' or ';' before '->' token
    9 | static auto HexEdit_mouseScroll(GtkWidget* widget, GdkEventScroll* event, pHexEdit* p) -> signed {
      |                                                                                        ^~
../hiro/core/../gtk/widget/hex-edit.cpp:23:28: error: 'GtkRange' was not declared in this scope
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                            ^~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:23:45: error: 'GtkScrollType' was not declared in this scope
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                                             ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:23:67: error: expected primary-expression before 'double'
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                                                                   ^~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:23:89: error: expected primary-expression before '*' token
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                                                                                         ^
../hiro/core/../gtk/widget/hex-edit.cpp:23:91: error: 'p' was not declared in this scope
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                                                                                           ^
../hiro/core/../gtk/widget/hex-edit.cpp:23:92: error: expression list treated as compound expression in initializer [-fpermissive]
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                                                                                            ^
../hiro/core/../gtk/widget/hex-edit.cpp:23:94: error: expected ',' or ';' before '->' token
   23 | static auto HexEdit_scroll(GtkRange* range, GtkScrollType scroll, double value, pHexEdit* p) -> signed {
      |                                                                                              ^~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'virtual void hiro::pHexEdit::construct()':
../hiro/core/../gtk/widget/hex-edit.cpp:32:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   32 |   gtkWidget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/hex-edit.cpp:32:27: error: 'GTK_ORIENTATION_HORIZONTAL' was not declared in this scope
   32 |   gtkWidget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:32:15: error: 'gtk_box_new' was not declared in this scope
   32 |   gtkWidget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |               ^~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:35:3: error: 'container' was not declared in this scope
   35 |   container = gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:35:15: error: 'gtk_scrolled_window_new' was not declared in this scope
   35 |   container = gtk_scrolled_window_new(0, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:36:34: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   36 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(container), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
      |                                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:36:66: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   36 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(container), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
      |                                                                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:36:88: error: 'GTK_POLICY_NEVER' was not declared in this scope
   36 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(container), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
      |                                                                                        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:36:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   36 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(container), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:37:71: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   37 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(container), GTK_SHADOW_ETCHED_IN);
      |                                                                       ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:37:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   37 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(container), GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:39:3: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   39 |   subWidget = gtk_text_view_new();
      |   ^~~~~~~~~
      |   sWidget
../hiro/core/../gtk/widget/hex-edit.cpp:39:15: error: 'gtk_text_view_new' was not declared in this scope
   39 |   subWidget = gtk_text_view_new();
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:40:30: error: 'GTK_TEXT_VIEW' was not declared in this scope
   40 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), false);
      |                              ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:40:3: error: 'gtk_text_view_set_editable' was not declared in this scope
   40 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:41:57: error: 'GTK_WRAP_NONE' was not declared in this scope
   41 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_NONE);
      |                                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:41:3: error: 'gtk_text_view_set_wrap_mode' was not declared in this scope
   41 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:42:21: error: 'GTK_CONTAINER' was not declared in this scope
   42 |   gtk_container_add(GTK_CONTAINER(container), subWidget);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:42:3: error: 'gtk_container_add' was not declared in this scope
   42 |   gtk_container_add(GTK_CONTAINER(container), subWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:47:3: error: 'scrollBar' was not declared in this scope; did you mean 'scroll'?
   47 |   scrollBar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
      |   ^~~~~~~~~
      |   scroll
../hiro/core/../gtk/widget/hex-edit.cpp:47:33: error: 'GTK_ORIENTATION_VERTICAL' was not declared in this scope
   47 |   scrollBar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:47:15: error: 'gtk_scrollbar_new' was not declared in this scope
   47 |   scrollBar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:49:23: error: 'GTK_RANGE' was not declared in this scope
   49 |   gtk_range_set_range(GTK_RANGE(scrollBar), 0, 255);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:49:3: error: 'gtk_range_set_range' was not declared in this scope
   49 |   gtk_range_set_range(GTK_RANGE(scrollBar), 0, 255);
      |   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:50:3: error: 'gtk_range_set_increments' was not declared in this scope
   50 |   gtk_range_set_increments(GTK_RANGE(scrollBar), 1, 16);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:51:3: error: 'gtk_widget_set_sensitive' was not declared in this scope
   51 |   gtk_widget_set_sensitive(scrollBar, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:53:22: error: 'GTK_BOX' was not declared in this scope
   53 |   gtk_box_pack_start(GTK_BOX(gtkWidget), container, true, true, 0);
      |                      ^~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:53:3: error: 'gtk_box_pack_start' was not declared in this scope
   53 |   gtk_box_pack_start(GTK_BOX(gtkWidget), container, true, true, 0);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:56:3: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   56 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |   ^~~~~~~~~~
      |   setbuffer
../hiro/core/../gtk/widget/hex-edit.cpp:56:16: error: 'gtk_text_view_get_buffer' was not declared in this scope
   56 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:57:3: error: 'textCursor' was not declared in this scope; did you mean 'TextCursor'?
   57 |   textCursor = gtk_text_buffer_get_mark(textBuffer, "insert");
      |   ^~~~~~~~~~
      |   TextCursor
../hiro/core/../gtk/widget/hex-edit.cpp:57:16: error: 'gtk_text_buffer_get_mark' was not declared in this scope
   57 |   textCursor = gtk_text_buffer_get_mark(textBuffer, "insert");
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:59:3: error: 'gtk_widget_show' was not declared in this scope
   59 |   gtk_widget_show(scrollBar);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:71:20: error: 'G_OBJECT' was not declared in this scope
   71 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(HexEdit_keyPress), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:71:60: error: 'G_CALLBACK' was not declared in this scope
   71 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(HexEdit_keyPress), (gpointer)this);
      |                                                            ^~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:71:91: error: 'gpointer' was not declared in this scope
   71 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(HexEdit_keyPress), (gpointer)this);
      |                                                                                           ^~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:71:3: error: 'g_signal_connect' was not declared in this scope
   71 |   g_signal_connect(G_OBJECT(subWidget), "key-press-event", G_CALLBACK(HexEdit_keyPress), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:72:100: error: expected ')' before 'this'
   72 |   g_signal_connect(G_OBJECT(subWidget), "scroll-event", G_CALLBACK(HexEdit_mouseScroll), (gpointer)this);
      |                   ~                                                                                ^~~~
      |                                                                                                    )
../hiro/core/../gtk/widget/hex-edit.cpp:74:95: error: expected ')' before 'this'
   74 |   g_signal_connect(G_OBJECT(scrollBar), "change-value", G_CALLBACK(HexEdit_scroll), (gpointer)this);
      |                   ~                                                                           ^~~~
      |                                                                                               )
../hiro/core/../gtk/widget/hex-edit.cpp:75:100: error: expected ')' before 'this'
   75 |   g_signal_connect(G_OBJECT(scrollBar), "scroll-event", G_CALLBACK(HexEdit_mouseScroll), (gpointer)this);
      |                   ~                                                                                ^~~~
      |                                                                                                    )
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'virtual void hiro::pHexEdit::destruct()':
../hiro/core/../gtk/widget/hex-edit.cpp:81:22: error: 'scrollBar' was not declared in this scope; did you mean 'scroll'?
   81 |   gtk_widget_destroy(scrollBar);
      |                      ^~~~~~~~~
      |                      scroll
../hiro/core/../gtk/widget/hex-edit.cpp:81:3: error: 'gtk_widget_destroy' was not declared in this scope
   81 |   gtk_widget_destroy(scrollBar);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:82:22: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   82 |   gtk_widget_destroy(subWidget);
      |                      ^~~~~~~~~
      |                      sWidget
../hiro/core/../gtk/widget/hex-edit.cpp:83:22: error: 'container' was not declared in this scope
   83 |   gtk_widget_destroy(container);
      |                      ^~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:84:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   84 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'virtual bool hiro::pHexEdit::focused() const':
../hiro/core/../gtk/widget/hex-edit.cpp:88:31: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   88 |   return gtk_widget_has_focus(subWidget) || gtk_widget_has_focus(scrollBar);
      |                               ^~~~~~~~~
      |                               sWidget
../hiro/core/../gtk/widget/hex-edit.cpp:88:10: error: 'gtk_widget_has_focus' was not declared in this scope
   88 |   return gtk_widget_has_focus(subWidget) || gtk_widget_has_focus(scrollBar);
      |          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:88:66: error: 'scrollBar' was not declared in this scope; did you mean 'scroll'?
   88 |   return gtk_widget_has_focus(subWidget) || gtk_widget_has_focus(scrollBar);
      |                                                                  ^~~~~~~~~
      |                                                                  scroll
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'void hiro::pHexEdit::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/hex-edit.cpp:98:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   98 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/hex-edit.cpp:99:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   99 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/hex-edit.cpp:99:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   99 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:99:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   99 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/hex-edit.cpp:99:3: error: 'gtk_widget_modify_base' was not declared in this scope
   99 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'void hiro::pHexEdit::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/hex-edit.cpp:108:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
  108 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/hex-edit.cpp:109:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  109 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/hex-edit.cpp:109:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
  109 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:109:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
  109 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/hex-edit.cpp:109:3: error: 'gtk_widget_modify_text' was not declared in this scope
  109 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'void hiro::pHexEdit::update()':
../hiro/core/../gtk/widget/hex-edit.cpp:124:30: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  124 |     gtk_text_buffer_set_text(textBuffer, "", -1);
      |                              ^~~~~~~~~~
      |                              setbuffer
../hiro/core/../gtk/widget/hex-edit.cpp:124:5: error: 'gtk_text_buffer_set_text' was not declared in this scope
  124 |     gtk_text_buffer_set_text(textBuffer, "", -1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:156:28: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  156 |   gtk_text_buffer_set_text(textBuffer, output, -1);
      |                            ^~~~~~~~~~
      |                            setbuffer
../hiro/core/../gtk/widget/hex-edit.cpp:156:3: error: 'gtk_text_buffer_set_text' was not declared in this scope
  156 |   gtk_text_buffer_set_text(textBuffer, output, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'unsigned int hiro::pHexEdit::cursorPosition()':
../hiro/core/../gtk/widget/hex-edit.cpp:162:3: error: 'GtkTextIter' was not declared in this scope
  162 |   GtkTextIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:163:36: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  163 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |                                    ^~~~~~~~~~
      |                                    setbuffer
../hiro/core/../gtk/widget/hex-edit.cpp:163:49: error: 'iter' was not declared in this scope
  163 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |                                                 ^~~~
../hiro/core/../gtk/widget/hex-edit.cpp:163:55: error: 'textCursor' was not declared in this scope; did you mean 'TextCursor'?
  163 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |                                                       ^~~~~~~~~~
      |                                                       TextCursor
../hiro/core/../gtk/widget/hex-edit.cpp:163:3: error: 'gtk_text_buffer_get_iter_at_mark' was not declared in this scope
  163 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:164:10: error: 'gtk_text_iter_get_offset' was not declared in this scope
  164 |   return gtk_text_iter_get_offset(&iter);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'bool hiro::pHexEdit::keyPress(unsigned int, unsigned int)':
../hiro/core/../gtk/widget/hex-edit.cpp:170:14: error: 'GDK_CONTROL_MASK' was not declared in this scope
  170 |   if(mask & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) return false;  //allow actions such as Ctrl+C (copy)
      |              ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:170:33: error: 'GDK_MOD1_MASK' was not declared in this scope
  170 |   if(mask & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) return false;  //allow actions such as Ctrl+C (copy)
      |                                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:170:49: error: 'GDK_SUPER_MASK' was not declared in this scope
  170 |   if(mask & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK)) return false;  //allow actions such as Ctrl+C (copy)
      |                                                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:177:18: error: 'GDK_KEY_Home' was not declared in this scope
  177 |   if(scancode == GDK_KEY_Home) {
      |                  ^~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:182:18: error: 'GDK_KEY_End' was not declared in this scope
  182 |   if(scancode == GDK_KEY_End) {
      |                  ^~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:187:18: error: 'GDK_KEY_Up' was not declared in this scope
  187 |   if(scancode == GDK_KEY_Up) {
      |                  ^~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:198:18: error: 'GDK_KEY_Down' was not declared in this scope
  198 |   if(scancode == GDK_KEY_Down) {
      |                  ^~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:210:18: error: 'GDK_KEY_Page_Up' was not declared in this scope
  210 |   if(scancode == GDK_KEY_Page_Up) {
      |                  ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:221:18: error: 'GDK_KEY_Page_Down' was not declared in this scope
  221 |   if(scancode == GDK_KEY_Page_Down) {
      |                  ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'void hiro::pHexEdit::setCursorPosition(unsigned int)':
../hiro/core/../gtk/widget/hex-edit.cpp:293:3: error: 'GtkTextIter' was not declared in this scope
  293 |   GtkTextIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:294:36: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  294 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |                                    ^~~~~~~~~~
      |                                    setbuffer
../hiro/core/../gtk/widget/hex-edit.cpp:294:49: error: 'iter' was not declared in this scope
  294 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |                                                 ^~~~
../hiro/core/../gtk/widget/hex-edit.cpp:294:55: error: 'textCursor' was not declared in this scope; did you mean 'TextCursor'?
  294 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |                                                       ^~~~~~~~~~
      |                                                       TextCursor
../hiro/core/../gtk/widget/hex-edit.cpp:294:3: error: 'gtk_text_buffer_get_iter_at_mark' was not declared in this scope
  294 |   gtk_text_buffer_get_iter_at_mark(textBuffer, &iter, textCursor);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:297:14: error: expected ';' before 'endIter'
  297 |   GtkTextIter endIter;
      |              ^~~~~~~~
      |              ;
../hiro/core/../gtk/widget/hex-edit.cpp:298:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
  298 |   gtk_text_buffer_get_end_iter(textBuffer, &iter);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:299:26: error: 'gtk_text_iter_get_offset' was not declared in this scope
  299 |   unsigned endPosition = gtk_text_iter_get_offset(&iter);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:301:3: error: 'gtk_text_iter_set_offset' was not declared in this scope
  301 |   gtk_text_iter_set_offset(&iter, min(position, endPosition));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:302:3: error: 'gtk_text_buffer_place_cursor' was not declared in this scope
  302 |   gtk_text_buffer_place_cursor(textBuffer, &iter);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'void hiro::pHexEdit::setScroll()':
../hiro/core/../gtk/widget/hex-edit.cpp:307:35: error: 'scrollBar' was not declared in this scope; did you mean 'scroll'?
  307 |     gtk_range_set_range(GTK_RANGE(scrollBar), 0, rowsScrollable());
      |                                   ^~~~~~~~~
      |                                   scroll
../hiro/core/../gtk/widget/hex-edit.cpp:307:25: error: 'GTK_RANGE' was not declared in this scope
  307 |     gtk_range_set_range(GTK_RANGE(scrollBar), 0, rowsScrollable());
      |                         ^~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:307:5: error: 'gtk_range_set_range' was not declared in this scope
  307 |     gtk_range_set_range(GTK_RANGE(scrollBar), 0, rowsScrollable());
      |     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:308:5: error: 'gtk_widget_set_sensitive' was not declared in this scope
  308 |     gtk_widget_set_sensitive(scrollBar, true);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:310:30: error: 'scrollBar' was not declared in this scope; did you mean 'scroll'?
  310 |     gtk_widget_set_sensitive(scrollBar, false);
      |                              ^~~~~~~~~
      |                              scroll
../hiro/core/../gtk/widget/hex-edit.cpp:310:5: error: 'gtk_widget_set_sensitive' was not declared in this scope
  310 |     gtk_widget_set_sensitive(scrollBar, false);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp: In member function 'void hiro::pHexEdit::updateScroll()':
../hiro/core/../gtk/widget/hex-edit.cpp:316:33: error: 'scrollBar' was not declared in this scope; did you mean 'scroll'?
  316 |   gtk_range_set_value(GTK_RANGE(scrollBar), row);
      |                                 ^~~~~~~~~
      |                                 scroll
../hiro/core/../gtk/widget/hex-edit.cpp:316:23: error: 'GTK_RANGE' was not declared in this scope
  316 |   gtk_range_set_value(GTK_RANGE(scrollBar), row);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/hex-edit.cpp:316:3: error: 'gtk_range_set_value' was not declared in this scope
  316 |   gtk_range_set_value(GTK_RANGE(scrollBar), row);
      |   ^~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:42:
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp: At global scope:
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:5:40: error: 'GtkRange' was not declared in this scope
    5 | static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar* p) -> void {
      |                                        ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:5:50: error: 'gtkRange' was not declared in this scope
    5 | static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar* p) -> void {
      |                                                  ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:5:80: error: expected primary-expression before '*' token
    5 | static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar* p) -> void {
      |                                                                                ^
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:5:82: error: 'p' was not declared in this scope
    5 | static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar* p) -> void {
      |                                                                                  ^
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:5:83: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar* p) -> void {
      |                                                                                   ^
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:5:85: error: expected ',' or ';' before '->' token
    5 | static auto HorizontalScrollBar_change(GtkRange* gtkRange, pHorizontalScrollBar* p) -> void {
      |                                                                                     ^~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp: In member function 'virtual void hiro::pHorizontalScrollBar::construct()':
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:16:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   16 |   gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:16:33: error: 'GTK_ORIENTATION_HORIZONTAL' was not declared in this scope
   16 |   gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:16:15: error: 'gtk_scrollbar_new' was not declared in this scope
   16 |   gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:22:20: error: 'G_OBJECT' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalScrollBar_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:22:58: error: 'G_CALLBACK' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalScrollBar_change), (gpointer)this);
      |                                                          ^~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:22:99: error: 'gpointer' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalScrollBar_change), (gpointer)this);
      |                                                                                                   ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:22:3: error: 'g_signal_connect' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalScrollBar_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp: In member function 'virtual void hiro::pHorizontalScrollBar::destruct()':
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:28:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   28 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:28:3: error: 'gtk_widget_destroy' was not declared in this scope
   28 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp: In member function 'void hiro::pHorizontalScrollBar::setLength(unsigned int)':
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:38:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:38:23: error: 'GTK_RANGE' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:38:3: error: 'gtk_range_set_range' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:39:3: error: 'gtk_range_set_increments' was not declared in this scope
   39 |   gtk_range_set_increments(GTK_RANGE(gtkWidget), 1, length >> 3);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp: In member function 'void hiro::pHorizontalScrollBar::setPosition(unsigned int)':
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:43:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:43:23: error: 'GTK_RANGE' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/horizontal-scroll-bar.cpp:43:3: error: 'gtk_range_set_value' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |   ^~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:43:
../hiro/core/../gtk/widget/horizontal-slider.cpp: At global scope:
../hiro/core/../gtk/widget/horizontal-slider.cpp:5:37: error: 'GtkRange' was not declared in this scope
    5 | static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) -> void {
      |                                     ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:5:47: error: 'gtkRange' was not declared in this scope
    5 | static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) -> void {
      |                                               ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:5:74: error: expected primary-expression before '*' token
    5 | static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) -> void {
      |                                                                          ^
../hiro/core/../gtk/widget/horizontal-slider.cpp:5:76: error: 'p' was not declared in this scope
    5 | static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) -> void {
      |                                                                            ^
../hiro/core/../gtk/widget/horizontal-slider.cpp:5:77: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) -> void {
      |                                                                             ^
../hiro/core/../gtk/widget/horizontal-slider.cpp:5:79: error: expected ',' or ';' before '->' token
    5 | static auto HorizontalSlider_change(GtkRange* gtkRange, pHorizontalSlider* p) -> void {
      |                                                                               ^~
../hiro/core/../gtk/widget/horizontal-slider.cpp: In member function 'virtual void hiro::pHorizontalSlider::construct()':
../hiro/core/../gtk/widget/horizontal-slider.cpp:16:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   16 |   gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 100, 1);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/horizontal-slider.cpp:16:40: error: 'GTK_ORIENTATION_HORIZONTAL' was not declared in this scope
   16 |   gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 100, 1);
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:16:15: error: 'gtk_scale_new_with_range' was not declared in this scope
   16 |   gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 100, 1);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:18:28: error: 'GTK_SCALE' was not declared in this scope
   18 |   gtk_scale_set_draw_value(GTK_SCALE(gtkWidget), false);
      |                            ^~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:18:3: error: 'gtk_scale_set_draw_value' was not declared in this scope
   18 |   gtk_scale_set_draw_value(GTK_SCALE(gtkWidget), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:23:20: error: 'G_OBJECT' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalSlider_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:23:58: error: 'G_CALLBACK' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalSlider_change), (gpointer)this);
      |                                                          ^~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:23:96: error: 'gpointer' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalSlider_change), (gpointer)this);
      |                                                                                                ^~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:23:3: error: 'g_signal_connect' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(HorizontalSlider_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp: In member function 'virtual void hiro::pHorizontalSlider::destruct()':
../hiro/core/../gtk/widget/horizontal-slider.cpp:29:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   29 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/horizontal-slider.cpp:29:3: error: 'gtk_widget_destroy' was not declared in this scope
   29 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp: In member function 'void hiro::pHorizontalSlider::setLength(unsigned int)':
../hiro/core/../gtk/widget/horizontal-slider.cpp:38:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/horizontal-slider.cpp:38:23: error: 'GTK_RANGE' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:38:3: error: 'gtk_range_set_range' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:39:3: error: 'gtk_range_set_increments' was not declared in this scope
   39 |   gtk_range_set_increments(GTK_RANGE(gtkWidget), 1, length >> 3);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp: In member function 'void hiro::pHorizontalSlider::setPosition(unsigned int)':
../hiro/core/../gtk/widget/horizontal-slider.cpp:43:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/horizontal-slider.cpp:43:23: error: 'GTK_RANGE' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/horizontal-slider.cpp:43:3: error: 'gtk_range_set_value' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |   ^~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:44:
../hiro/core/../gtk/widget/icon-view.cpp: At global scope:
../hiro/core/../gtk/widget/icon-view.cpp:5:31: error: 'GtkIconView' was not declared in this scope; did you mean 'wIconView'?
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                               ^~~~~~~~~~~
      |                               wIconView
../hiro/core/../gtk/widget/icon-view.cpp:5:44: error: 'iconView' was not declared in this scope; did you mean 'IconView'?
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                            ^~~~~~~~
      |                                            IconView
../hiro/core/../gtk/widget/icon-view.cpp:5:54: error: 'GtkTreePath' was not declared in this scope
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:5:67: error: 'path' was not declared in this scope; did you mean 'nall::Location::path'?
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                                                   ^~~~
      |                                                                   nall::Location::path
In file included from ../nall/string/transform/cml.hpp:7,
                 from ../nall/string.hpp:365,
                 from ../nall/chrono.hpp:4,
                 from ../hiro/core/core.hpp:3:
../nall/location.hpp:9:13: note: 'nall::Location::path' declared here
    9 | inline auto path(string_view self) -> string {
      |             ^~~~
../hiro/core/../gtk/widget/icon-view.cpp:5:82: error: expected primary-expression before '*' token
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                                                                  ^
../hiro/core/../gtk/widget/icon-view.cpp:5:84: error: 'p' was not declared in this scope
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                                                                    ^
../hiro/core/../gtk/widget/icon-view.cpp:5:85: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                                                                     ^
../hiro/core/../gtk/widget/icon-view.cpp:5:87: error: expected ',' or ';' before '->' token
    5 | static auto IconView_activate(GtkIconView* iconView, GtkTreePath* path, pIconView* p) -> void {
      |                                                                                       ^~
../hiro/core/../gtk/widget/icon-view.cpp:9:34: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                  ^~~~~~~~~~~
      |                                  wTreeView
../hiro/core/../gtk/widget/icon-view.cpp:9:47: error: 'treeView' was not declared in this scope; did you mean 'TreeView'?
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                               ^~~~~~~~
      |                                               TreeView
../hiro/core/../gtk/widget/icon-view.cpp:9:57: error: 'GdkEventButton' was not declared in this scope
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                                         ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:9:73: error: 'event' was not declared in this scope; did you mean 'servent'?
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                                                         ^~~~~
      |                                                                         servent
../hiro/core/../gtk/widget/icon-view.cpp:9:89: error: expected primary-expression before '*' token
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                                                                         ^
../hiro/core/../gtk/widget/icon-view.cpp:9:91: error: 'p' was not declared in this scope
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                                                                           ^
../hiro/core/../gtk/widget/icon-view.cpp:9:92: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                                                                            ^
../hiro/core/../gtk/widget/icon-view.cpp:9:94: error: expected ',' or ';' before '->' token
    9 | static auto IconView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pIconView* p) -> signed {
      |                                                                                              ^~
../hiro/core/../gtk/widget/icon-view.cpp:18:29: error: 'GtkIconView' was not declared in this scope; did you mean 'wIconView'?
   18 | static auto IconView_change(GtkIconView* iconView, pIconView* p) -> void {
      |                             ^~~~~~~~~~~
      |                             wIconView
../hiro/core/../gtk/widget/icon-view.cpp:18:42: error: 'iconView' was not declared in this scope; did you mean 'IconView'?
   18 | static auto IconView_change(GtkIconView* iconView, pIconView* p) -> void {
      |                                          ^~~~~~~~
      |                                          IconView
../hiro/core/../gtk/widget/icon-view.cpp:18:61: error: expected primary-expression before '*' token
   18 | static auto IconView_change(GtkIconView* iconView, pIconView* p) -> void {
      |                                                             ^
../hiro/core/../gtk/widget/icon-view.cpp:18:63: error: 'p' was not declared in this scope
   18 | static auto IconView_change(GtkIconView* iconView, pIconView* p) -> void {
      |                                                               ^
../hiro/core/../gtk/widget/icon-view.cpp:18:64: error: expression list treated as compound expression in initializer [-fpermissive]
   18 | static auto IconView_change(GtkIconView* iconView, pIconView* p) -> void {
      |                                                                ^
../hiro/core/../gtk/widget/icon-view.cpp:18:66: error: expected ',' or ';' before '->' token
   18 | static auto IconView_change(GtkIconView* iconView, pIconView* p) -> void {
      |                                                                  ^~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'virtual void hiro::pIconView::construct()':
../hiro/core/../gtk/widget/icon-view.cpp:23:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   23 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/icon-view.cpp:23:15: error: 'gtk_scrolled_window_new' was not declared in this scope
   23 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:24:34: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   24 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:24:66: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   24 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                                                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:24:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   24 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:25:71: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   25 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(gtkWidget), GTK_SHADOW_ETCHED_IN);
      |                                                                       ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:25:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   25 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(gtkWidget), GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:27:3: error: 'store' was not declared in this scope
   27 |   store = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |   ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:27:33: error: 'GDK_TYPE_PIXBUF' was not declared in this scope
   27 |   store = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                 ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:27:50: error: 'G_TYPE_STRING' was not declared in this scope
   27 |   store = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:27:11: error: 'gtk_list_store_new' was not declared in this scope
   27 |   store = gtk_list_store_new(2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |           ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:28:3: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   28 |   subWidget = gtk_icon_view_new_with_model(GTK_TREE_MODEL(store));
      |   ^~~~~~~~~
      |   sWidget
../hiro/core/../gtk/widget/icon-view.cpp:28:44: error: 'GTK_TREE_MODEL' was not declared in this scope
   28 |   subWidget = gtk_icon_view_new_with_model(GTK_TREE_MODEL(store));
      |                                            ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:28:15: error: 'gtk_icon_view_new_with_model' was not declared in this scope
   28 |   subWidget = gtk_icon_view_new_with_model(GTK_TREE_MODEL(store));
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:29:35: error: 'GTK_ICON_VIEW' was not declared in this scope
   29 |   gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(subWidget), 0);
      |                                   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:29:3: error: 'gtk_icon_view_set_pixbuf_column' was not declared in this scope
   29 |   gtk_icon_view_set_pixbuf_column(GTK_ICON_VIEW(subWidget), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:30:3: error: 'gtk_icon_view_set_text_column' was not declared in this scope
   30 |   gtk_icon_view_set_text_column(GTK_ICON_VIEW(subWidget), 1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:31:3: error: 'gtk_icon_view_set_reorderable' was not declared in this scope
   31 |   gtk_icon_view_set_reorderable(GTK_ICON_VIEW(subWidget), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:32:3: error: 'gtk_icon_view_set_margin' was not declared in this scope
   32 |   gtk_icon_view_set_margin(GTK_ICON_VIEW(subWidget), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:33:3: error: 'gtk_icon_view_set_spacing' was not declared in this scope
   33 |   gtk_icon_view_set_spacing(GTK_ICON_VIEW(subWidget), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:34:3: error: 'gtk_icon_view_set_column_spacing' was not declared in this scope
   34 |   gtk_icon_view_set_column_spacing(GTK_ICON_VIEW(subWidget), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:35:3: error: 'gtk_icon_view_set_row_spacing' was not declared in this scope
   35 |   gtk_icon_view_set_row_spacing(GTK_ICON_VIEW(subWidget), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:36:3: error: 'gtk_icon_view_set_item_padding' was not declared in this scope
   36 |   gtk_icon_view_set_item_padding(GTK_ICON_VIEW(subWidget), 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:37:21: error: 'GTK_CONTAINER' was not declared in this scope
   37 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:37:3: error: 'gtk_container_add' was not declared in this scope
   37 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:39:3: error: 'gtk_widget_show' was not declared in this scope
   39 |   gtk_widget_show(subWidget);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:52:20: error: 'G_OBJECT' was not declared in this scope
   52 |   g_signal_connect(G_OBJECT(subWidget), "button-press-event", G_CALLBACK(IconView_buttonEvent), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:52:63: error: 'G_CALLBACK' was not declared in this scope
   52 |   g_signal_connect(G_OBJECT(subWidget), "button-press-event", G_CALLBACK(IconView_buttonEvent), (gpointer)this);
      |                                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:52:98: error: 'gpointer' was not declared in this scope
   52 |   g_signal_connect(G_OBJECT(subWidget), "button-press-event", G_CALLBACK(IconView_buttonEvent), (gpointer)this);
      |                                                                                                  ^~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:52:3: error: 'g_signal_connect' was not declared in this scope
   52 |   g_signal_connect(G_OBJECT(subWidget), "button-press-event", G_CALLBACK(IconView_buttonEvent), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:53:109: error: expected ')' before 'this'
   53 |   g_signal_connect(G_OBJECT(subWidget), "button-release-event", G_CALLBACK(IconView_buttonEvent), (gpointer)this);
      |                   ~                                                                                         ^~~~
      |                                                                                                             )
../hiro/core/../gtk/widget/icon-view.cpp:54:100: error: expected ')' before 'this'
   54 |   g_signal_connect(G_OBJECT(subWidget), "item-activated", G_CALLBACK(IconView_activate), (gpointer)this);
      |                   ~                                                                                ^~~~
      |                                                                                                    )
../hiro/core/../gtk/widget/icon-view.cpp:55:101: error: expected ')' before 'this'
   55 |   g_signal_connect(G_OBJECT(subWidget), "selection-changed", G_CALLBACK(IconView_change), (gpointer)this);
      |                   ~                                                                                 ^~~~
      |                                                                                                     )
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'virtual void hiro::pIconView::destruct()':
../hiro/core/../gtk/widget/icon-view.cpp:61:22: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   61 |   gtk_widget_destroy(subWidget);
      |                      ^~~~~~~~~
      |                      sWidget
../hiro/core/../gtk/widget/icon-view.cpp:61:3: error: 'gtk_widget_destroy' was not declared in this scope
   61 |   gtk_widget_destroy(subWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:62:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   62 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::append(hiro::sIconViewItem)':
../hiro/core/../gtk/widget/icon-view.cpp:66:3: error: 'GtkTreeIter' was not declared in this scope
   66 |   GtkTreeIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:67:25: error: 'store' was not declared in this scope
   67 |   gtk_list_store_append(store, &iter);
      |                         ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:67:33: error: 'iter' was not declared in this scope; did you mean 'item'?
   67 |   gtk_list_store_append(store, &iter);
      |                                 ^~~~
      |                                 item
../hiro/core/../gtk/widget/icon-view.cpp:67:3: error: 'gtk_list_store_append' was not declared in this scope
   67 |   gtk_list_store_append(store, &iter);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::remove(hiro::sIconViewItem)':
../hiro/core/../gtk/widget/icon-view.cpp:75:3: error: 'GtkTreeIter' was not declared in this scope
   75 |   GtkTreeIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:76:57: error: 'store' was not declared in this scope
   76 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{item->offset()})) {
      |                                                         ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:76:42: error: 'GTK_TREE_MODEL' was not declared in this scope
   76 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{item->offset()})) {
      |                                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:76:66: error: 'iter' was not declared in this scope; did you mean 'item'?
   76 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{item->offset()})) {
      |                                                                  ^~~~
      |                                                                  item
../hiro/core/../gtk/widget/icon-view.cpp:76:6: error: 'gtk_tree_model_get_iter_from_string' was not declared in this scope
   76 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{item->offset()})) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:77:5: error: 'gtk_list_store_remove' was not declared in this scope
   77 |     gtk_list_store_remove(store, &iter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'virtual void hiro::pIconView::reset()':
../hiro/core/../gtk/widget/icon-view.cpp:85:24: error: 'store' was not declared in this scope
   85 |   gtk_list_store_clear(store);
      |                        ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:85:3: error: 'gtk_list_store_clear' was not declared in this scope
   85 |   gtk_list_store_clear(store);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/icon-view.cpp:91:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   91 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/icon-view.cpp:92:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   92 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/icon-view.cpp:92:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   92 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:92:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   92 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/icon-view.cpp:92:3: error: 'gtk_widget_modify_base' was not declared in this scope
   92 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setBatchable(bool)':
../hiro/core/../gtk/widget/icon-view.cpp:96:50: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   96 |   gtk_icon_view_set_selection_mode(GTK_ICON_VIEW(subWidget),
      |                                                  ^~~~~~~~~
      |                                                  sWidget
../hiro/core/../gtk/widget/icon-view.cpp:96:36: error: 'GTK_ICON_VIEW' was not declared in this scope
   96 |   gtk_icon_view_set_selection_mode(GTK_ICON_VIEW(subWidget),
      |                                    ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:97:17: error: 'GTK_SELECTION_MULTIPLE' was not declared in this scope
   97 |     batchable ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE
      |                 ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:97:42: error: 'GTK_SELECTION_SINGLE' was not declared in this scope
   97 |     batchable ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE
      |                                          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:96:3: error: 'gtk_icon_view_set_selection_mode' was not declared in this scope
   96 |   gtk_icon_view_set_selection_mode(GTK_ICON_VIEW(subWidget),
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setFlow(hiro::Orientation)':
../hiro/core/../gtk/widget/icon-view.cpp:104:45: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  104 |     gtk_icon_view_set_columns(GTK_ICON_VIEW(subWidget), -1);
      |                                             ^~~~~~~~~
      |                                             sWidget
../hiro/core/../gtk/widget/icon-view.cpp:104:31: error: 'GTK_ICON_VIEW' was not declared in this scope
  104 |     gtk_icon_view_set_columns(GTK_ICON_VIEW(subWidget), -1);
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:104:5: error: 'gtk_icon_view_set_columns' was not declared in this scope
  104 |     gtk_icon_view_set_columns(GTK_ICON_VIEW(subWidget), -1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:105:5: error: 'gtk_icon_view_set_item_width' was not declared in this scope
  105 |     gtk_icon_view_set_item_width(GTK_ICON_VIEW(subWidget), -1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:107:45: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  107 |     gtk_icon_view_set_columns(GTK_ICON_VIEW(subWidget), 1);
      |                                             ^~~~~~~~~
      |                                             sWidget
../hiro/core/../gtk/widget/icon-view.cpp:107:31: error: 'GTK_ICON_VIEW' was not declared in this scope
  107 |     gtk_icon_view_set_columns(GTK_ICON_VIEW(subWidget), 1);
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:107:5: error: 'gtk_icon_view_set_columns' was not declared in this scope
  107 |     gtk_icon_view_set_columns(GTK_ICON_VIEW(subWidget), 1);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:108:5: error: 'gtk_icon_view_set_item_width' was not declared in this scope
  108 |     gtk_icon_view_set_item_width(GTK_ICON_VIEW(subWidget), max(128, pSizable::state().geometry.width() - 64));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/icon-view.cpp:113:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
  113 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/icon-view.cpp:114:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  114 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/icon-view.cpp:114:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
  114 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:114:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
  114 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/icon-view.cpp:114:3: error: 'gtk_widget_modify_text' was not declared in this scope
  114 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'virtual void hiro::pIconView::setGeometry(hiro::Geometry)':
../hiro/core/../gtk/widget/icon-view.cpp:120:48: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  120 |     gtk_icon_view_set_item_width(GTK_ICON_VIEW(subWidget), max(128, pSizable::state().geometry.width() - 64));
      |                                                ^~~~~~~~~
      |                                                sWidget
../hiro/core/../gtk/widget/icon-view.cpp:120:34: error: 'GTK_ICON_VIEW' was not declared in this scope
  120 |     gtk_icon_view_set_item_width(GTK_ICON_VIEW(subWidget), max(128, pSizable::state().geometry.width() - 64));
      |                                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:120:5: error: 'gtk_icon_view_set_item_width' was not declared in this scope
  120 |     gtk_icon_view_set_item_width(GTK_ICON_VIEW(subWidget), max(128, pSizable::state().geometry.width() - 64));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setItemIcon(unsigned int, const nall::image&)':
../hiro/core/../gtk/widget/icon-view.cpp:126:3: error: 'GtkTreeIter' was not declared in this scope
  126 |   GtkTreeIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:127:57: error: 'store' was not declared in this scope
  127 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |                                                         ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:127:42: error: 'GTK_TREE_MODEL' was not declared in this scope
  127 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |                                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:127:66: error: 'iter' was not declared in this scope
  127 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |                                                                  ^~~~
../hiro/core/../gtk/widget/icon-view.cpp:127:6: error: 'gtk_tree_model_get_iter_from_string' was not declared in this scope
  127 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:129:7: error: 'GdkPixbuf' was not declared in this scope
  129 |       GdkPixbuf* pixbuf = CreatePixbuf(icon);
      |       ^~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:129:18: error: 'pixbuf' was not declared in this scope
  129 |       GdkPixbuf* pixbuf = CreatePixbuf(icon);
      |                  ^~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:129:27: error: 'CreatePixbuf' was not declared in this scope
  129 |       GdkPixbuf* pixbuf = CreatePixbuf(icon);
      |                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:130:7: error: 'gtk_list_store_set' was not declared in this scope
  130 |       gtk_list_store_set(store, &iter, 0, pixbuf, -1);
      |       ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:132:7: error: 'gtk_list_store_set' was not declared in this scope
  132 |       gtk_list_store_set(store, &iter, 0, nullptr, -1);
      |       ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setItemSelected(unsigned int, bool)':
../hiro/core/../gtk/widget/icon-view.cpp:140:3: error: 'GtkTreePath' was not declared in this scope
  140 |   GtkTreePath* path = gtk_tree_path_new_from_string(string{position});
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:140:16: error: 'path' was not declared in this scope; did you mean 'nall::Location::path'?
  140 |   GtkTreePath* path = gtk_tree_path_new_from_string(string{position});
      |                ^~~~
      |                nall::Location::path
../nall/location.hpp:9:13: note: 'nall::Location::path' declared here
    9 | inline auto path(string_view self) -> string {
      |             ^~~~
../hiro/core/../gtk/widget/icon-view.cpp:140:23: error: 'gtk_tree_path_new_from_string' was not declared in this scope
  140 |   GtkTreePath* path = gtk_tree_path_new_from_string(string{position});
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:142:45: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  142 |     gtk_icon_view_select_path(GTK_ICON_VIEW(subWidget), path);
      |                                             ^~~~~~~~~
      |                                             sWidget
../hiro/core/../gtk/widget/icon-view.cpp:142:31: error: 'GTK_ICON_VIEW' was not declared in this scope
  142 |     gtk_icon_view_select_path(GTK_ICON_VIEW(subWidget), path);
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:142:5: error: 'gtk_icon_view_select_path' was not declared in this scope
  142 |     gtk_icon_view_select_path(GTK_ICON_VIEW(subWidget), path);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:144:47: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  144 |     gtk_icon_view_unselect_path(GTK_ICON_VIEW(subWidget), path);
      |                                               ^~~~~~~~~
      |                                               sWidget
../hiro/core/../gtk/widget/icon-view.cpp:144:33: error: 'GTK_ICON_VIEW' was not declared in this scope
  144 |     gtk_icon_view_unselect_path(GTK_ICON_VIEW(subWidget), path);
      |                                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:144:5: error: 'gtk_icon_view_unselect_path' was not declared in this scope
  144 |     gtk_icon_view_unselect_path(GTK_ICON_VIEW(subWidget), path);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:146:3: error: 'gtk_tree_path_free' was not declared in this scope
  146 |   gtk_tree_path_free(path);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setItemSelectedAll()':
../hiro/core/../gtk/widget/icon-view.cpp:161:42: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  161 |   gtk_icon_view_select_all(GTK_ICON_VIEW(subWidget));
      |                                          ^~~~~~~~~
      |                                          sWidget
../hiro/core/../gtk/widget/icon-view.cpp:161:28: error: 'GTK_ICON_VIEW' was not declared in this scope
  161 |   gtk_icon_view_select_all(GTK_ICON_VIEW(subWidget));
      |                            ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:161:3: error: 'gtk_icon_view_select_all' was not declared in this scope
  161 |   gtk_icon_view_select_all(GTK_ICON_VIEW(subWidget));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setItemSelectedNone()':
../hiro/core/../gtk/widget/icon-view.cpp:168:44: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  168 |   gtk_icon_view_unselect_all(GTK_ICON_VIEW(subWidget));
      |                                            ^~~~~~~~~
      |                                            sWidget
../hiro/core/../gtk/widget/icon-view.cpp:168:30: error: 'GTK_ICON_VIEW' was not declared in this scope
  168 |   gtk_icon_view_unselect_all(GTK_ICON_VIEW(subWidget));
      |                              ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:168:3: error: 'gtk_icon_view_unselect_all' was not declared in this scope
  168 |   gtk_icon_view_unselect_all(GTK_ICON_VIEW(subWidget));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setItemText(unsigned int, const nall::string&)':
../hiro/core/../gtk/widget/icon-view.cpp:175:3: error: 'GtkTreeIter' was not declared in this scope
  175 |   GtkTreeIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:176:57: error: 'store' was not declared in this scope
  176 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |                                                         ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:176:42: error: 'GTK_TREE_MODEL' was not declared in this scope
  176 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |                                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:176:66: error: 'iter' was not declared in this scope
  176 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |                                                                  ^~~~
../hiro/core/../gtk/widget/icon-view.cpp:176:6: error: 'gtk_tree_model_get_iter_from_string' was not declared in this scope
  176 |   if(gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), &iter, string{position})) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:177:5: error: 'gtk_list_store_set' was not declared in this scope
  177 |     gtk_list_store_set(store, &iter, 1, (const char*)text, -1);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::setOrientation(hiro::Orientation)':
../hiro/core/../gtk/widget/icon-view.cpp:182:52: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  182 |   gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(subWidget),
      |                                                    ^~~~~~~~~
      |                                                    sWidget
../hiro/core/../gtk/widget/icon-view.cpp:182:38: error: 'GTK_ICON_VIEW' was not declared in this scope
  182 |   gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(subWidget),
      |                                      ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:183:46: error: 'GTK_ORIENTATION_HORIZONTAL' was not declared in this scope
  183 |     orientation == Orientation::Horizontal ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:183:75: error: 'GTK_ORIENTATION_VERTICAL' was not declared in this scope
  183 |     orientation == Orientation::Horizontal ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL
      |                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:182:3: error: 'gtk_icon_view_set_item_orientation' was not declared in this scope
  182 |   gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(subWidget),
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp: In member function 'void hiro::pIconView::_updateSelected()':
../hiro/core/../gtk/widget/icon-view.cpp:190:3: error: 'GList' was not declared in this scope
  190 |   GList* list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(subWidget));
      |   ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:190:10: error: 'list' was not declared in this scope
  190 |   GList* list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(subWidget));
      |          ^~~~
../hiro/core/../gtk/widget/icon-view.cpp:190:64: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  190 |   GList* list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(subWidget));
      |                                                                ^~~~~~~~~
      |                                                                sWidget
../hiro/core/../gtk/widget/icon-view.cpp:190:50: error: 'GTK_ICON_VIEW' was not declared in this scope
  190 |   GList* list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(subWidget));
      |                                                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:190:17: error: 'gtk_icon_view_get_selected_items' was not declared in this scope
  190 |   GList* list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(subWidget));
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:191:10: error: 'p' was not declared in this scope
  191 |   GList* p = list;
      |          ^
../hiro/core/../gtk/widget/icon-view.cpp:194:18: error: 'GtkTreePath' was not declared in this scope
  194 |     auto path = (GtkTreePath*)p->data;
      |                  ^~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:194:30: error: expected primary-expression before ')' token
  194 |     auto path = (GtkTreePath*)p->data;
      |                              ^
../hiro/core/../gtk/widget/icon-view.cpp:195:24: error: 'gtk_tree_path_to_string' was not declared in this scope
  195 |     char* pathString = gtk_tree_path_to_string(path);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:197:5: error: 'g_free' was not declared in this scope; did you mean 'free'?
  197 |     g_free(pathString);
      |     ^~~~~~
      |     free
../hiro/core/../gtk/widget/icon-view.cpp:202:25: error: 'GFunc' was not declared in this scope
  202 |   g_list_foreach(list, (GFunc)gtk_tree_path_free, nullptr);
      |                         ^~~~~
../hiro/core/../gtk/widget/icon-view.cpp:202:3: error: 'g_list_foreach' was not declared in this scope
  202 |   g_list_foreach(list, (GFunc)gtk_tree_path_free, nullptr);
      |   ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/icon-view.cpp:203:3: error: 'g_list_free' was not declared in this scope
  203 |   g_list_free(list);
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:46:
../hiro/core/../gtk/widget/label.cpp: At global scope:
../hiro/core/../gtk/widget/label.cpp:5:24: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                        ^~~~~~~~~
      |                        wWidget
../hiro/core/../gtk/widget/label.cpp:5:35: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                   ^~~~~~
      |                                   Widget
../hiro/core/../gtk/widget/label.cpp:5:43: error: 'cairo_t' was not declared in this scope
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                           ^~~~~~~
../hiro/core/../gtk/widget/label.cpp:5:52: error: 'context' was not declared in this scope; did you mean 'ucontext'?
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                                    ^~~~~~~
      |                                                    ucontext
../hiro/core/../gtk/widget/label.cpp:5:67: error: expected primary-expression before '*' token
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                                                   ^
../hiro/core/../gtk/widget/label.cpp:5:69: error: 'p' was not declared in this scope
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                                                     ^
../hiro/core/../gtk/widget/label.cpp:5:70: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                                                      ^
../hiro/core/../gtk/widget/label.cpp:5:72: error: expected ',' or ';' before '->' token
    5 | static auto Label_draw(GtkWidget* widget, cairo_t* context, pLabel* p) -> int {
      |                                                                        ^~
../hiro/core/../gtk/widget/label.cpp:42:26: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                          ^~~~~~~~~
      |                          wWidget
../hiro/core/../gtk/widget/label.cpp:42:37: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                     ^~~~~~
      |                                     Widget
../hiro/core/../gtk/widget/label.cpp:42:45: error: 'GdkEvent' was not declared in this scope
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                             ^~~~~~~~
../hiro/core/../gtk/widget/label.cpp:42:55: error: 'event' was not declared in this scope; did you mean 'servent'?
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                                       ^~~~~
      |                                                       servent
../hiro/core/../gtk/widget/label.cpp:42:68: error: expected primary-expression before '*' token
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                                                    ^
../hiro/core/../gtk/widget/label.cpp:42:70: error: 'p' was not declared in this scope
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                                                      ^
../hiro/core/../gtk/widget/label.cpp:42:71: error: expression list treated as compound expression in initializer [-fpermissive]
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                                                       ^
../hiro/core/../gtk/widget/label.cpp:42:73: error: expected ',' or ';' before '->' token
   42 | static auto Label_expose(GtkWidget* widget, GdkEvent* event, pLabel* p) -> int {
      |                                                                         ^~
../hiro/core/../gtk/widget/label.cpp:49:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/widget/label.cpp:49:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/widget/label.cpp:49:49: error: 'GdkEventButton' was not declared in this scope
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:49:65: error: 'event' was not declared in this scope; did you mean 'servent'?
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                 ^~~~~
      |                                                                 servent
../hiro/core/../gtk/widget/label.cpp:49:79: error: expected primary-expression before '*' token
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/label.cpp:49:81: error: 'p' was not declared in this scope
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                 ^
../hiro/core/../gtk/widget/label.cpp:49:82: error: expression list treated as compound expression in initializer [-fpermissive]
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/label.cpp:49:84: error: expected ',' or ';' before '->' token
   49 | static auto Label_mouseEnter(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                    ^~
../hiro/core/../gtk/widget/label.cpp:54:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/widget/label.cpp:54:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/widget/label.cpp:54:49: error: 'GdkEventButton' was not declared in this scope
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:54:65: error: 'event' was not declared in this scope; did you mean 'servent'?
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                 ^~~~~
      |                                                                 servent
../hiro/core/../gtk/widget/label.cpp:54:79: error: expected primary-expression before '*' token
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/label.cpp:54:81: error: 'p' was not declared in this scope
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                 ^
../hiro/core/../gtk/widget/label.cpp:54:82: error: expression list treated as compound expression in initializer [-fpermissive]
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/label.cpp:54:84: error: expected ',' or ';' before '->' token
   54 | static auto Label_mouseLeave(GtkWidget* widget, GdkEventButton* event, pCanvas* p) -> signed {
      |                                                                                    ^~
../hiro/core/../gtk/widget/label.cpp:59:30: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                              ^~~~~~~~~
      |                              wWidget
../hiro/core/../gtk/widget/label.cpp:59:41: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                         ^~~~~~
      |                                         Widget
../hiro/core/../gtk/widget/label.cpp:59:49: error: 'GdkEventButton' was not declared in this scope
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                 ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:59:65: error: 'event' was not declared in this scope; did you mean 'servent'?
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                 ^~~~~
      |                                                                 servent
../hiro/core/../gtk/widget/label.cpp:59:78: error: expected primary-expression before '*' token
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                              ^
../hiro/core/../gtk/widget/label.cpp:59:80: error: 'p' was not declared in this scope
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                ^
../hiro/core/../gtk/widget/label.cpp:59:81: error: expression list treated as compound expression in initializer [-fpermissive]
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                 ^
../hiro/core/../gtk/widget/label.cpp:59:83: error: expected ',' or ';' before '->' token
   59 | static auto Label_mousePress(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                   ^~
../hiro/core/../gtk/widget/label.cpp:68:32: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                ^~~~~~~~~
      |                                wWidget
../hiro/core/../gtk/widget/label.cpp:68:43: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                           ^~~~~~
      |                                           Widget
../hiro/core/../gtk/widget/label.cpp:68:51: error: 'GdkEventButton' was not declared in this scope
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                   ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:68:67: error: 'event' was not declared in this scope; did you mean 'servent'?
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                   ^~~~~
      |                                                                   servent
../hiro/core/../gtk/widget/label.cpp:68:80: error: expected primary-expression before '*' token
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                ^
../hiro/core/../gtk/widget/label.cpp:68:82: error: 'p' was not declared in this scope
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                  ^
../hiro/core/../gtk/widget/label.cpp:68:83: error: expression list treated as compound expression in initializer [-fpermissive]
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                   ^
../hiro/core/../gtk/widget/label.cpp:68:85: error: expected ',' or ';' before '->' token
   68 | static auto Label_mouseRelease(GtkWidget* widget, GdkEventButton* event, pLabel* p) -> int {
      |                                                                                     ^~
../hiro/core/../gtk/widget/label.cpp: In member function 'virtual void hiro::pLabel::construct()':
../hiro/core/../gtk/widget/label.cpp:78:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   78 |   gtkWidget = gtk_event_box_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/label.cpp:78:15: error: 'gtk_event_box_new' was not declared in this scope
   78 |   gtkWidget = gtk_event_box_new();
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:79:3: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   79 |   subWidget = gtk_label_new("");
      |   ^~~~~~~~~
      |   sWidget
../hiro/core/../gtk/widget/label.cpp:79:15: error: 'gtk_label_new' was not declared in this scope
   79 |   subWidget = gtk_label_new("");
      |               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:80:3: error: 'gtk_widget_show' was not declared in this scope
   80 |   gtk_widget_show(subWidget);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:81:21: error: 'GTK_CONTAINER' was not declared in this scope
   81 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:81:3: error: 'gtk_container_add' was not declared in this scope
   81 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:88:20: error: 'G_OBJECT' was not declared in this scope
   88 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Label_mousePress), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/label.cpp:88:63: error: 'G_CALLBACK' was not declared in this scope
   88 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Label_mousePress), (gpointer)this);
      |                                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:88:94: error: 'gpointer' was not declared in this scope
   88 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Label_mousePress), (gpointer)this);
      |                                                                                              ^~~~~~~~
../hiro/core/../gtk/widget/label.cpp:88:3: error: 'g_signal_connect' was not declared in this scope
   88 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Label_mousePress), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:89:107: error: expected ')' before 'this'
   89 |   g_signal_connect(G_OBJECT(gtkWidget), "button-release-event", G_CALLBACK(Label_mouseRelease), (gpointer)this);
      |                   ~                                                                                       ^~~~
      |                                                                                                           )
../hiro/core/../gtk/widget/label.cpp:93:83: error: expected ')' before 'this'
   93 |   g_signal_connect(G_OBJECT(subWidget), "draw", G_CALLBACK(Label_draw), (gpointer)this);
      |                   ~                                                               ^~~~
      |                                                                                   )
../hiro/core/../gtk/widget/label.cpp:95:103: error: expected ')' before 'this'
   95 |   g_signal_connect(G_OBJECT(gtkWidget), "enter-notify-event", G_CALLBACK(Label_mouseEnter), (gpointer)this);
      |                   ~                                                                                   ^~~~
      |                                                                                                       )
../hiro/core/../gtk/widget/label.cpp:96:103: error: expected ')' before 'this'
   96 |   g_signal_connect(G_OBJECT(gtkWidget), "leave-notify-event", G_CALLBACK(Label_mouseLeave), (gpointer)this);
      |                   ~                                                                                   ^~~~
      |                                                                                                       )
../hiro/core/../gtk/widget/label.cpp: In member function 'virtual void hiro::pLabel::destruct()':
../hiro/core/../gtk/widget/label.cpp:102:22: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  102 |   gtk_widget_destroy(subWidget);
      |                      ^~~~~~~~~
      |                      sWidget
../hiro/core/../gtk/widget/label.cpp:102:3: error: 'gtk_widget_destroy' was not declared in this scope
  102 |   gtk_widget_destroy(subWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:103:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  103 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/label.cpp: In member function 'void hiro::pLabel::setAlignment(hiro::Alignment)':
../hiro/core/../gtk/widget/label.cpp:113:35: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  113 |   gtk_misc_set_alignment(GTK_MISC(subWidget), alignment.horizontal(), alignment.vertical());
      |                                   ^~~~~~~~~
      |                                   sWidget
../hiro/core/../gtk/widget/label.cpp:113:26: error: 'GTK_MISC' was not declared in this scope
  113 |   gtk_misc_set_alignment(GTK_MISC(subWidget), alignment.horizontal(), alignment.vertical());
      |                          ^~~~~~~~
../hiro/core/../gtk/widget/label.cpp:113:3: error: 'gtk_misc_set_alignment' was not declared in this scope
  113 |   gtk_misc_set_alignment(GTK_MISC(subWidget), alignment.horizontal(), alignment.vertical());
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:114:18: error: 'GTK_JUSTIFY_CENTER' was not declared in this scope
  114 |   auto justify = GTK_JUSTIFY_CENTER;
      |                  ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:115:48: error: 'GTK_JUSTIFY_LEFT' was not declared in this scope
  115 |   if(alignment.horizontal() < 0.333) justify = GTK_JUSTIFY_LEFT;
      |                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:116:48: error: 'GTK_JUSTIFY_RIGHT' was not declared in this scope
  116 |   if(alignment.horizontal() > 0.666) justify = GTK_JUSTIFY_RIGHT;
      |                                                ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:117:25: error: 'GTK_LABEL' was not declared in this scope
  117 |   gtk_label_set_justify(GTK_LABEL(subWidget), justify);
      |                         ^~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:117:3: error: 'gtk_label_set_justify' was not declared in this scope
  117 |   gtk_label_set_justify(GTK_LABEL(subWidget), justify);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp: In member function 'void hiro::pLabel::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/label.cpp:127:19: error: 'CreateColor' was not declared in this scope
  127 |   auto gdkColor = CreateColor(color);
      |                   ^~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:128:24: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  128 |   gtk_widget_modify_fg(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                        ^~~~~~~~~
      |                        sWidget
../hiro/core/../gtk/widget/label.cpp:128:35: error: 'GTK_STATE_NORMAL' was not declared in this scope
  128 |   gtk_widget_modify_fg(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:128:3: error: 'gtk_widget_modify_fg' was not declared in this scope
  128 |   gtk_widget_modify_fg(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/label.cpp: In member function 'void hiro::pLabel::setText(const nall::string&)':
../hiro/core/../gtk/widget/label.cpp:132:32: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
  132 |   gtk_label_set_text(GTK_LABEL(subWidget), text);
      |                                ^~~~~~~~~
      |                                sWidget
../hiro/core/../gtk/widget/label.cpp:132:22: error: 'GTK_LABEL' was not declared in this scope
  132 |   gtk_label_set_text(GTK_LABEL(subWidget), text);
      |                      ^~~~~~~~~
../hiro/core/../gtk/widget/label.cpp:132:3: error: 'gtk_label_set_text' was not declared in this scope
  132 |   gtk_label_set_text(GTK_LABEL(subWidget), text);
      |   ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:47:
../hiro/core/../gtk/widget/line-edit.cpp: At global scope:
../hiro/core/../gtk/widget/line-edit.cpp:5:31: error: 'GtkEntry' was not declared in this scope
    5 | static auto LineEdit_activate(GtkEntry*, pLineEdit* p) -> void {
      |                               ^~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:5:40: error: expected primary-expression before ',' token
    5 | static auto LineEdit_activate(GtkEntry*, pLineEdit* p) -> void {
      |                                        ^
../hiro/core/../gtk/widget/line-edit.cpp:5:51: error: expected primary-expression before '*' token
    5 | static auto LineEdit_activate(GtkEntry*, pLineEdit* p) -> void {
      |                                                   ^
../hiro/core/../gtk/widget/line-edit.cpp:5:53: error: 'p' was not declared in this scope
    5 | static auto LineEdit_activate(GtkEntry*, pLineEdit* p) -> void {
      |                                                     ^
../hiro/core/../gtk/widget/line-edit.cpp:5:54: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto LineEdit_activate(GtkEntry*, pLineEdit* p) -> void {
      |                                                      ^
../hiro/core/../gtk/widget/line-edit.cpp:5:56: error: expected ',' or ';' before '->' token
    5 | static auto LineEdit_activate(GtkEntry*, pLineEdit* p) -> void {
      |                                                        ^~
../hiro/core/../gtk/widget/line-edit.cpp:9:29: error: 'GtkEditable' was not declared in this scope
    9 | static auto LineEdit_change(GtkEditable*, pLineEdit* p) -> void {
      |                             ^~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:9:41: error: expected primary-expression before ',' token
    9 | static auto LineEdit_change(GtkEditable*, pLineEdit* p) -> void {
      |                                         ^
../hiro/core/../gtk/widget/line-edit.cpp:9:52: error: expected primary-expression before '*' token
    9 | static auto LineEdit_change(GtkEditable*, pLineEdit* p) -> void {
      |                                                    ^
../hiro/core/../gtk/widget/line-edit.cpp:9:54: error: 'p' was not declared in this scope
    9 | static auto LineEdit_change(GtkEditable*, pLineEdit* p) -> void {
      |                                                      ^
../hiro/core/../gtk/widget/line-edit.cpp:9:55: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | static auto LineEdit_change(GtkEditable*, pLineEdit* p) -> void {
      |                                                       ^
../hiro/core/../gtk/widget/line-edit.cpp:9:57: error: expected ',' or ';' before '->' token
    9 | static auto LineEdit_change(GtkEditable*, pLineEdit* p) -> void {
      |                                                         ^~
../hiro/core/../gtk/widget/line-edit.cpp: In member function 'virtual void hiro::pLineEdit::construct()':
../hiro/core/../gtk/widget/line-edit.cpp:15:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   15 |   gtkWidget = gtk_entry_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/line-edit.cpp:15:15: error: 'gtk_entry_new' was not declared in this scope
   15 |   gtkWidget = gtk_entry_new();
      |               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:22:20: error: 'G_OBJECT' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "activate", G_CALLBACK(LineEdit_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:22:53: error: 'G_CALLBACK' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "activate", G_CALLBACK(LineEdit_activate), (gpointer)this);
      |                                                     ^~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:22:85: error: 'gpointer' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "activate", G_CALLBACK(LineEdit_activate), (gpointer)this);
      |                                                                                     ^~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:22:3: error: 'g_signal_connect' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "activate", G_CALLBACK(LineEdit_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:23:91: error: expected ')' before 'this'
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "changed", G_CALLBACK(LineEdit_change), (gpointer)this);
      |                   ~                                                                       ^~~~
      |                                                                                           )
../hiro/core/../gtk/widget/line-edit.cpp: In member function 'virtual void hiro::pLineEdit::destruct()':
../hiro/core/../gtk/widget/line-edit.cpp:29:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   29 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/line-edit.cpp:29:3: error: 'gtk_widget_destroy' was not declared in this scope
   29 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp: In member function 'void hiro::pLineEdit::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/line-edit.cpp:38:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   38 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/line-edit.cpp:39:26: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   39 |   gtk_widget_modify_base(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          pWidget
../hiro/core/../gtk/widget/line-edit.cpp:39:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   39 |   gtk_widget_modify_base(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:39:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   39 |   gtk_widget_modify_base(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/line-edit.cpp:39:3: error: 'gtk_widget_modify_base' was not declared in this scope
   39 |   gtk_widget_modify_base(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp: In member function 'void hiro::pLineEdit::setEditable(bool)':
../hiro/core/../gtk/widget/line-edit.cpp:43:42: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   43 |   gtk_editable_set_editable(GTK_EDITABLE(gtkWidget), editable);
      |                                          ^~~~~~~~~
      |                                          pWidget
../hiro/core/../gtk/widget/line-edit.cpp:43:29: error: 'GTK_EDITABLE' was not declared in this scope
   43 |   gtk_editable_set_editable(GTK_EDITABLE(gtkWidget), editable);
      |                             ^~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:43:3: error: 'gtk_editable_set_editable' was not declared in this scope
   43 |   gtk_editable_set_editable(GTK_EDITABLE(gtkWidget), editable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp: In member function 'void hiro::pLineEdit::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/line-edit.cpp:47:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   47 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/line-edit.cpp:48:26: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   48 |   gtk_widget_modify_text(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          pWidget
../hiro/core/../gtk/widget/line-edit.cpp:48:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   48 |   gtk_widget_modify_text(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp:48:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   48 |   gtk_widget_modify_text(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/line-edit.cpp:48:3: error: 'gtk_widget_modify_text' was not declared in this scope
   48 |   gtk_widget_modify_text(gtkWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/line-edit.cpp: In member function 'void hiro::pLineEdit::setText(const nall::string&)':
../hiro/core/../gtk/widget/line-edit.cpp:53:32: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   53 |   gtk_entry_set_text(GTK_ENTRY(gtkWidget), text);
      |                                ^~~~~~~~~
      |                                pWidget
../hiro/core/../gtk/widget/line-edit.cpp:53:22: error: 'GTK_ENTRY' was not declared in this scope; did you mean 'AT_ENTRY'?
   53 |   gtk_entry_set_text(GTK_ENTRY(gtkWidget), text);
      |                      ^~~~~~~~~
      |                      AT_ENTRY
../hiro/core/../gtk/widget/line-edit.cpp:53:3: error: 'gtk_entry_set_text' was not declared in this scope
   53 |   gtk_entry_set_text(GTK_ENTRY(gtkWidget), text);
      |   ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:48:
../hiro/core/../gtk/widget/progress-bar.cpp: In member function 'virtual void hiro::pProgressBar::construct()':
../hiro/core/../gtk/widget/progress-bar.cpp:6:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
    6 |   gtkWidget = gtk_progress_bar_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/progress-bar.cpp:6:15: error: 'gtk_progress_bar_new' was not declared in this scope
    6 |   gtkWidget = gtk_progress_bar_new();
      |               ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/progress-bar.cpp: In member function 'virtual void hiro::pProgressBar::destruct()':
../hiro/core/../gtk/widget/progress-bar.cpp:14:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   14 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/progress-bar.cpp:14:3: error: 'gtk_widget_destroy' was not declared in this scope
   14 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/progress-bar.cpp: In member function 'void hiro::pProgressBar::setPosition(unsigned int)':
../hiro/core/../gtk/widget/progress-bar.cpp:23:50: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   23 |   gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkWidget), (double)position / 100.0);
      |                                                  ^~~~~~~~~
      |                                                  pWidget
../hiro/core/../gtk/widget/progress-bar.cpp:23:33: error: 'GTK_PROGRESS_BAR' was not declared in this scope
   23 |   gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkWidget), (double)position / 100.0);
      |                                 ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/progress-bar.cpp:23:3: error: 'gtk_progress_bar_set_fraction' was not declared in this scope
   23 |   gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkWidget), (double)position / 100.0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:49:
../hiro/core/../gtk/widget/radio-button.cpp: At global scope:
../hiro/core/../gtk/widget/radio-button.cpp:5:34: error: 'GtkToggleButton' was not declared in this scope
    5 | static auto RadioButton_activate(GtkToggleButton*, pRadioButton* p) -> void {
      |                                  ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:5:50: error: expected primary-expression before ',' token
    5 | static auto RadioButton_activate(GtkToggleButton*, pRadioButton* p) -> void {
      |                                                  ^
../hiro/core/../gtk/widget/radio-button.cpp:5:64: error: expected primary-expression before '*' token
    5 | static auto RadioButton_activate(GtkToggleButton*, pRadioButton* p) -> void {
      |                                                                ^
../hiro/core/../gtk/widget/radio-button.cpp:5:66: error: 'p' was not declared in this scope
    5 | static auto RadioButton_activate(GtkToggleButton*, pRadioButton* p) -> void {
      |                                                                  ^
../hiro/core/../gtk/widget/radio-button.cpp:5:67: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto RadioButton_activate(GtkToggleButton*, pRadioButton* p) -> void {
      |                                                                   ^
../hiro/core/../gtk/widget/radio-button.cpp:5:69: error: expected ',' or ';' before '->' token
    5 | static auto RadioButton_activate(GtkToggleButton*, pRadioButton* p) -> void {
      |                                                                     ^~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'virtual void hiro::pRadioButton::construct()':
../hiro/core/../gtk/widget/radio-button.cpp:13:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   13 |   gtkWidget = gtk_toggle_button_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/radio-button.cpp:13:15: error: 'gtk_toggle_button_new' was not declared in this scope
   13 |   gtkWidget = gtk_toggle_button_new();
      |               ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:20:20: error: 'G_OBJECT' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioButton_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:20:52: error: 'G_CALLBACK' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioButton_activate), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:20:87: error: 'gpointer' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioButton_activate), (gpointer)this);
      |                                                                                       ^~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:20:3: error: 'g_signal_connect' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioButton_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'virtual void hiro::pRadioButton::destruct()':
../hiro/core/../gtk/widget/radio-button.cpp:26:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   26 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/radio-button.cpp:26:3: error: 'gtk_widget_destroy' was not declared in this scope
   26 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'void hiro::pRadioButton::setBordered(bool)':
../hiro/core/../gtk/widget/radio-button.cpp:46:36: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   46 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                    ^~~~~~~~~
      |                                    pWidget
../hiro/core/../gtk/widget/radio-button.cpp:46:25: error: 'GTK_BUTTON' was not declared in this scope
   46 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                         ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:46:59: error: 'GTK_RELIEF_NORMAL' was not declared in this scope
   46 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                                           ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:46:79: error: 'GTK_RELIEF_NONE' was not declared in this scope
   46 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |                                                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:46:3: error: 'gtk_button_set_relief' was not declared in this scope
   46 |   gtk_button_set_relief(GTK_BUTTON(gtkWidget), bordered ? GTK_RELIEF_NORMAL : GTK_RELIEF_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'void hiro::pRadioButton::setChecked()':
../hiro/core/../gtk/widget/radio-button.cpp:55:64: error: 'struct hiro::pRadioButton' has no member named 'gtkWidget'; did you mean 'pWidget'?
   55 |           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->gtkWidget), radioButton->state.checked);
      |                                                                ^~~~~~~~~
      |                                                                pWidget
../hiro/core/../gtk/widget/radio-button.cpp:55:40: error: 'GTK_TOGGLE_BUTTON' was not declared in this scope
   55 |           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->gtkWidget), radioButton->state.checked);
      |                                        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:55:11: error: 'gtk_toggle_button_set_active' was not declared in this scope
   55 |           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->gtkWidget), radioButton->state.checked);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'void hiro::pRadioButton::setGroup(hiro::sGroup)':
../hiro/core/../gtk/widget/radio-button.cpp:70:64: error: 'struct hiro::pRadioButton' has no member named 'gtkWidget'; did you mean 'pWidget'?
   70 |           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->gtkWidget), radioButton->state.checked = first);
      |                                                                ^~~~~~~~~
      |                                                                pWidget
../hiro/core/../gtk/widget/radio-button.cpp:70:40: error: 'GTK_TOGGLE_BUTTON' was not declared in this scope
   70 |           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->gtkWidget), radioButton->state.checked = first);
      |                                        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:70:11: error: 'gtk_toggle_button_set_active' was not declared in this scope
   70 |           gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->gtkWidget), radioButton->state.checked = first);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'void hiro::pRadioButton::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/radio-button.cpp:81:5: error: 'GtkImage' was not declared in this scope
   81 |     GtkImage* gtkImage = CreateImage(icon);
      |     ^~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:81:15: error: 'gtkImage' was not declared in this scope
   81 |     GtkImage* gtkImage = CreateImage(icon);
      |               ^~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:81:26: error: 'CreateImage' was not declared in this scope
   81 |     GtkImage* gtkImage = CreateImage(icon);
      |                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:82:37: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   82 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                                     ^~~~~~~~~
      |                                     pWidget
../hiro/core/../gtk/widget/radio-button.cpp:82:26: error: 'GTK_BUTTON' was not declared in this scope
   82 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                          ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:82:50: error: 'GtkWidget' was not declared in this scope; did you mean 'pWidget'?
   82 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                                                  ^~~~~~~~~
      |                                                  pWidget
../hiro/core/../gtk/widget/radio-button.cpp:82:60: error: expected primary-expression before ')' token
   82 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |                                                            ^
../hiro/core/../gtk/widget/radio-button.cpp:82:5: error: 'gtk_button_set_image' was not declared in this scope
   82 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), (GtkWidget*)gtkImage);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:84:37: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   84 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), nullptr);
      |                                     ^~~~~~~~~
      |                                     pWidget
../hiro/core/../gtk/widget/radio-button.cpp:84:26: error: 'GTK_BUTTON' was not declared in this scope
   84 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), nullptr);
      |                          ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:84:5: error: 'gtk_button_set_image' was not declared in this scope
   84 |     gtk_button_set_image(GTK_BUTTON(gtkWidget), nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'void hiro::pRadioButton::setOrientation(hiro::Orientation)':
../hiro/core/../gtk/widget/radio-button.cpp:90:74: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   90 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                                                          ^~~~~~~~~
      |                                                                          pWidget
../hiro/core/../gtk/widget/radio-button.cpp:90:63: error: 'GTK_BUTTON' was not declared in this scope
   90 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:90:86: error: 'GTK_POS_LEFT' was not declared in this scope
   90 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                                                                      ^~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:90:33: error: 'gtk_button_set_image_position' was not declared in this scope
   90 |   case Orientation::Horizontal: gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_LEFT); break;
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:91:86: error: 'GTK_POS_TOP' was not declared in this scope
   91 |   case Orientation::Vertical:   gtk_button_set_image_position(GTK_BUTTON(gtkWidget), GTK_POS_TOP);  break;
      |                                                                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp: In member function 'void hiro::pRadioButton::setText(const nall::string&)':
../hiro/core/../gtk/widget/radio-button.cpp:96:35: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   96 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                                   ^~~~~~~~~
      |                                   pWidget
../hiro/core/../gtk/widget/radio-button.cpp:96:24: error: 'GTK_BUTTON' was not declared in this scope
   96 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                        ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-button.cpp:96:3: error: 'gtk_button_set_label' was not declared in this scope
   96 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:50:
../hiro/core/../gtk/widget/radio-label.cpp: At global scope:
../hiro/core/../gtk/widget/radio-label.cpp:5:33: error: 'GtkToggleButton' was not declared in this scope
    5 | static auto RadioLabel_activate(GtkToggleButton*, pRadioLabel* p) -> void {
      |                                 ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:5:49: error: expected primary-expression before ',' token
    5 | static auto RadioLabel_activate(GtkToggleButton*, pRadioLabel* p) -> void {
      |                                                 ^
../hiro/core/../gtk/widget/radio-label.cpp:5:62: error: expected primary-expression before '*' token
    5 | static auto RadioLabel_activate(GtkToggleButton*, pRadioLabel* p) -> void {
      |                                                              ^
../hiro/core/../gtk/widget/radio-label.cpp:5:64: error: 'p' was not declared in this scope
    5 | static auto RadioLabel_activate(GtkToggleButton*, pRadioLabel* p) -> void {
      |                                                                ^
../hiro/core/../gtk/widget/radio-label.cpp:5:65: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto RadioLabel_activate(GtkToggleButton*, pRadioLabel* p) -> void {
      |                                                                 ^
../hiro/core/../gtk/widget/radio-label.cpp:5:67: error: expected ',' or ';' before '->' token
    5 | static auto RadioLabel_activate(GtkToggleButton*, pRadioLabel* p) -> void {
      |                                                                   ^~
../hiro/core/../gtk/widget/radio-label.cpp: In member function 'virtual void hiro::pRadioLabel::construct()':
../hiro/core/../gtk/widget/radio-label.cpp:13:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   13 |   gtkWidget = gtk_radio_button_new_with_label(nullptr, "");
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/radio-label.cpp:13:15: error: 'gtk_radio_button_new_with_label' was not declared in this scope
   13 |   gtkWidget = gtk_radio_button_new_with_label(nullptr, "");
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:14:3: error: 'gtkToggleButton' was not declared in this scope
   14 |   gtkToggleButton = GTK_TOGGLE_BUTTON(gtkWidget);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:14:21: error: 'GTK_TOGGLE_BUTTON' was not declared in this scope
   14 |   gtkToggleButton = GTK_TOGGLE_BUTTON(gtkWidget);
      |                     ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:15:3: error: 'gtkRadioButton' was not declared in this scope; did you mean 'wRadioButton'?
   15 |   gtkRadioButton = GTK_RADIO_BUTTON(gtkWidget);
      |   ^~~~~~~~~~~~~~
      |   wRadioButton
../hiro/core/../gtk/widget/radio-label.cpp:15:20: error: 'GTK_RADIO_BUTTON' was not declared in this scope
   15 |   gtkRadioButton = GTK_RADIO_BUTTON(gtkWidget);
      |                    ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:20:20: error: 'G_OBJECT' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioLabel_activate), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:20:52: error: 'G_CALLBACK' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioLabel_activate), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:20:86: error: 'gpointer' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioLabel_activate), (gpointer)this);
      |                                                                                      ^~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:20:3: error: 'g_signal_connect' was not declared in this scope
   20 |   g_signal_connect(G_OBJECT(gtkWidget), "toggled", G_CALLBACK(RadioLabel_activate), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp: In member function 'virtual void hiro::pRadioLabel::destruct()':
../hiro/core/../gtk/widget/radio-label.cpp:26:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   26 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/radio-label.cpp:26:3: error: 'gtk_widget_destroy' was not declared in this scope
   26 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp: In member function 'void hiro::pRadioLabel::setChecked()':
../hiro/core/../gtk/widget/radio-label.cpp:36:32: error: 'gtkToggleButton' was not declared in this scope
   36 |   gtk_toggle_button_set_active(gtkToggleButton, true);
      |                                ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:36:3: error: 'gtk_toggle_button_set_active' was not declared in this scope
   36 |   gtk_toggle_button_set_active(gtkToggleButton, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp: In member function 'void hiro::pRadioLabel::setGroup(hiro::sGroup)':
../hiro/core/../gtk/widget/radio-label.cpp:40:9: error: 'GtkRadioButton' was not declared in this scope; did you mean 'wRadioButton'?
   40 |   maybe<GtkRadioButton*> gtkRadioButton;
      |         ^~~~~~~~~~~~~~
      |         wRadioButton
../hiro/core/../gtk/widget/radio-label.cpp:40:24: error: template argument 1 is invalid
   40 |   maybe<GtkRadioButton*> gtkRadioButton;
      |                        ^
../hiro/core/../gtk/widget/radio-label.cpp:46:44: error: 'struct hiro::pRadioLabel' has no member named 'gtkRadioButton'
   46 |           gtk_radio_button_set_group(self->gtkRadioButton, nullptr);
      |                                            ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:46:11: error: 'gtk_radio_button_set_group' was not declared in this scope
   46 |           gtk_radio_button_set_group(self->gtkRadioButton, nullptr);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:48:36: error: 'struct hiro::pRadioLabel' has no member named 'gtkRadioButton'
   48 |             gtkRadioButton = self->gtkRadioButton;
      |                                    ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:49:48: error: 'struct hiro::pRadioLabel' has no member named 'gtkToggleButton'
   49 |             gtk_toggle_button_set_active(self->gtkToggleButton, radioLabel->state.checked = true);
      |                                                ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:49:13: error: 'gtk_toggle_button_set_active' was not declared in this scope
   49 |             gtk_toggle_button_set_active(self->gtkToggleButton, radioLabel->state.checked = true);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:51:46: error: 'struct hiro::pRadioLabel' has no member named 'gtkRadioButton'
   51 |             gtk_radio_button_set_group(self->gtkRadioButton, gtk_radio_button_get_group(*gtkRadioButton));
      |                                              ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:51:89: error: invalid type argument of unary '*' (have 'int')
   51 |             gtk_radio_button_set_group(self->gtkRadioButton, gtk_radio_button_get_group(*gtkRadioButton));
      |                                                                                         ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:51:62: error: 'gtk_radio_button_get_group' was not declared in this scope
   51 |             gtk_radio_button_set_group(self->gtkRadioButton, gtk_radio_button_get_group(*gtkRadioButton));
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:52:48: error: 'struct hiro::pRadioLabel' has no member named 'gtkToggleButton'
   52 |             gtk_toggle_button_set_active(self->gtkToggleButton, radioLabel->state.checked = false);
      |                                                ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:52:13: error: 'gtk_toggle_button_set_active' was not declared in this scope
   52 |             gtk_toggle_button_set_active(self->gtkToggleButton, radioLabel->state.checked = false);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp: In member function 'void hiro::pRadioLabel::setText(const nall::string&)':
../hiro/core/../gtk/widget/radio-label.cpp:61:35: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   61 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                                   ^~~~~~~~~
      |                                   pWidget
../hiro/core/../gtk/widget/radio-label.cpp:61:24: error: 'GTK_BUTTON' was not declared in this scope
   61 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |                        ^~~~~~~~~~
../hiro/core/../gtk/widget/radio-label.cpp:61:3: error: 'gtk_button_set_label' was not declared in this scope
   61 |   gtk_button_set_label(GTK_BUTTON(gtkWidget), text);
      |   ^~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:51:
../hiro/core/../gtk/widget/source-edit.cpp: At global scope:
../hiro/core/../gtk/widget/source-edit.cpp:5:31: error: 'GtkTextBuffer' was not declared in this scope
    5 | static auto SourceEdit_change(GtkTextBuffer*, pSourceEdit* p) -> void {
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:5:45: error: expected primary-expression before ',' token
    5 | static auto SourceEdit_change(GtkTextBuffer*, pSourceEdit* p) -> void {
      |                                             ^
../hiro/core/../gtk/widget/source-edit.cpp:5:58: error: expected primary-expression before '*' token
    5 | static auto SourceEdit_change(GtkTextBuffer*, pSourceEdit* p) -> void {
      |                                                          ^
../hiro/core/../gtk/widget/source-edit.cpp:5:60: error: 'p' was not declared in this scope
    5 | static auto SourceEdit_change(GtkTextBuffer*, pSourceEdit* p) -> void {
      |                                                            ^
../hiro/core/../gtk/widget/source-edit.cpp:5:61: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto SourceEdit_change(GtkTextBuffer*, pSourceEdit* p) -> void {
      |                                                             ^
../hiro/core/../gtk/widget/source-edit.cpp:5:63: error: expected ',' or ';' before '->' token
    5 | static auto SourceEdit_change(GtkTextBuffer*, pSourceEdit* p) -> void {
      |                                                               ^~
../hiro/core/../gtk/widget/source-edit.cpp:9:29: error: 'GObject' was not declared in this scope; did you mean 'wObject'?
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                             ^~~~~~~
      |                             wObject
../hiro/core/../gtk/widget/source-edit.cpp:9:37: error: expected primary-expression before ',' token
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                     ^
../hiro/core/../gtk/widget/source-edit.cpp:9:39: error: 'GParamSpec' was not declared in this scope
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                       ^~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:9:50: error: expected primary-expression before ',' token
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                                  ^
../hiro/core/../gtk/widget/source-edit.cpp:9:63: error: expected primary-expression before '*' token
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                                               ^
../hiro/core/../gtk/widget/source-edit.cpp:9:65: error: 'p' was not declared in this scope
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                                                 ^
../hiro/core/../gtk/widget/source-edit.cpp:9:66: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                                                  ^
../hiro/core/../gtk/widget/source-edit.cpp:9:68: error: expected ',' or ';' before '->' token
    9 | static auto SourceEdit_move(GObject*, GParamSpec*, pSourceEdit* p) -> void {
      |                                                                    ^~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'virtual void hiro::pSourceEdit::construct()':
../hiro/core/../gtk/widget/source-edit.cpp:15:3: error: 'gtkScrolledWindow' was not declared in this scope
   15 |   gtkScrolledWindow = (GtkScrolledWindow*)gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:15:24: error: 'GtkScrolledWindow' was not declared in this scope
   15 |   gtkScrolledWindow = (GtkScrolledWindow*)gtk_scrolled_window_new(0, 0);
      |                        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:15:42: error: expected primary-expression before ')' token
   15 |   gtkScrolledWindow = (GtkScrolledWindow*)gtk_scrolled_window_new(0, 0);
      |                                          ^
../hiro/core/../gtk/widget/source-edit.cpp:16:3: error: 'gtkContainer' was not declared in this scope
   16 |   gtkContainer = GTK_CONTAINER(gtkScrolledWindow);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:16:18: error: 'GTK_CONTAINER' was not declared in this scope
   16 |   gtkContainer = GTK_CONTAINER(gtkScrolledWindow);
      |                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:17:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   17 |   gtkWidget = GTK_WIDGET(gtkScrolledWindow);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/source-edit.cpp:17:15: error: 'GTK_WIDGET' was not declared in this scope
   17 |   gtkWidget = GTK_WIDGET(gtkScrolledWindow);
      |               ^~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:18:53: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   18 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                                     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:18:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   18 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:19:58: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   19 |   gtk_scrolled_window_set_shadow_type(gtkScrolledWindow, GTK_SHADOW_ETCHED_IN);
      |                                                          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:19:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   19 |   gtk_scrolled_window_set_shadow_type(gtkScrolledWindow, GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:21:3: error: 'gtkSourceLanguageManager' was not declared in this scope
   21 |   gtkSourceLanguageManager = gtk_source_language_manager_get_default();
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:21:30: error: 'gtk_source_language_manager_get_default' was not declared in this scope
   21 |   gtkSourceLanguageManager = gtk_source_language_manager_get_default();
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:22:3: error: 'gtkSourceLanguage' was not declared in this scope
   22 |   gtkSourceLanguage = gtk_source_language_manager_get_language(gtkSourceLanguageManager, "");
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:22:23: error: 'gtk_source_language_manager_get_language' was not declared in this scope
   22 |   gtkSourceLanguage = gtk_source_language_manager_get_language(gtkSourceLanguageManager, "");
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:24:3: error: 'gtkSourceStyleSchemeManager' was not declared in this scope
   24 |   gtkSourceStyleSchemeManager = gtk_source_style_scheme_manager_get_default();
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:24:33: error: 'gtk_source_style_scheme_manager_get_default' was not declared in this scope
   24 |   gtkSourceStyleSchemeManager = gtk_source_style_scheme_manager_get_default();
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:25:3: error: 'gtkSourceStyleScheme' was not declared in this scope
   25 |   gtkSourceStyleScheme = gtk_source_style_scheme_manager_get_scheme(gtkSourceStyleSchemeManager, "classic");
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:25:26: error: 'gtk_source_style_scheme_manager_get_scheme' was not declared in this scope
   25 |   gtkSourceStyleScheme = gtk_source_style_scheme_manager_get_scheme(gtkSourceStyleSchemeManager, "classic");
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:27:3: error: 'gtkSourceBuffer' was not declared in this scope
   27 |   gtkSourceBuffer = gtk_source_buffer_new(nullptr);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:27:21: error: 'gtk_source_buffer_new' was not declared in this scope
   27 |   gtkSourceBuffer = gtk_source_buffer_new(nullptr);
      |                     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:28:3: error: 'gtkTextBuffer' was not declared in this scope
   28 |   gtkTextBuffer = GTK_TEXT_BUFFER(gtkSourceBuffer);
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:28:19: error: 'GTK_TEXT_BUFFER' was not declared in this scope
   28 |   gtkTextBuffer = GTK_TEXT_BUFFER(gtkSourceBuffer);
      |                   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:29:3: error: 'gtk_source_buffer_set_highlight_matching_brackets' was not declared in this scope
   29 |   gtk_source_buffer_set_highlight_matching_brackets(gtkSourceBuffer, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:30:3: error: 'gtk_source_buffer_set_highlight_syntax' was not declared in this scope
   30 |   gtk_source_buffer_set_highlight_syntax(gtkSourceBuffer, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:31:3: error: 'gtk_source_buffer_set_language' was not declared in this scope
   31 |   gtk_source_buffer_set_language(gtkSourceBuffer, gtkSourceLanguage);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:32:3: error: 'gtk_source_buffer_set_style_scheme' was not declared in this scope
   32 |   gtk_source_buffer_set_style_scheme(gtkSourceBuffer, gtkSourceStyleScheme);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:34:3: error: 'gtkSourceView' was not declared in this scope
   34 |   gtkSourceView = (GtkSourceView*)gtk_source_view_new_with_buffer(gtkSourceBuffer);
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:34:20: error: 'GtkSourceView' was not declared in this scope
   34 |   gtkSourceView = (GtkSourceView*)gtk_source_view_new_with_buffer(gtkSourceBuffer);
      |                    ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:34:34: error: expected primary-expression before ')' token
   34 |   gtkSourceView = (GtkSourceView*)gtk_source_view_new_with_buffer(gtkSourceBuffer);
      |                                  ^
../hiro/core/../gtk/widget/source-edit.cpp:35:3: error: 'gtkTextView' was not declared in this scope
   35 |   gtkTextView = GTK_TEXT_VIEW(gtkSourceView);
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:35:17: error: 'GTK_TEXT_VIEW' was not declared in this scope
   35 |   gtkTextView = GTK_TEXT_VIEW(gtkSourceView);
      |                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:36:3: error: 'gtkWidgetSourceView' was not declared in this scope
   36 |   gtkWidgetSourceView = GTK_WIDGET(gtkSourceView);
      |   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:37:3: error: 'gtk_source_view_set_auto_indent' was not declared in this scope
   37 |   gtk_source_view_set_auto_indent(gtkSourceView, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:38:51: error: 'GtkSourceDrawSpacesFlags' was not declared in this scope
   38 |   gtk_source_view_set_draw_spaces(gtkSourceView, (GtkSourceDrawSpacesFlags)0);
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:38:3: error: 'gtk_source_view_set_draw_spaces' was not declared in this scope
   38 |   gtk_source_view_set_draw_spaces(gtkSourceView, (GtkSourceDrawSpacesFlags)0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:39:3: error: 'gtk_source_view_set_highlight_current_line' was not declared in this scope
   39 |   gtk_source_view_set_highlight_current_line(gtkSourceView, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:40:3: error: 'gtk_source_view_set_indent_on_tab' was not declared in this scope
   40 |   gtk_source_view_set_indent_on_tab(gtkSourceView, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:41:3: error: 'gtk_source_view_set_indent_width' was not declared in this scope
   41 |   gtk_source_view_set_indent_width(gtkSourceView, 4);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:42:3: error: 'gtk_source_view_set_insert_spaces_instead_of_tabs' was not declared in this scope
   42 |   gtk_source_view_set_insert_spaces_instead_of_tabs(gtkSourceView, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:43:3: error: 'gtk_source_view_set_right_margin_position' was not declared in this scope
   43 |   gtk_source_view_set_right_margin_position(gtkSourceView, 80);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:44:3: error: 'gtk_source_view_set_show_line_marks' was not declared in this scope
   44 |   gtk_source_view_set_show_line_marks(gtkSourceView, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:45:3: error: 'gtk_source_view_set_show_line_numbers' was not declared in this scope
   45 |   gtk_source_view_set_show_line_numbers(gtkSourceView, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:46:3: error: 'gtk_source_view_set_show_right_margin' was not declared in this scope
   46 |   gtk_source_view_set_show_right_margin(gtkSourceView, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:47:53: error: 'GTK_SOURCE_SMART_HOME_END_DISABLED' was not declared in this scope
   47 |   gtk_source_view_set_smart_home_end(gtkSourceView, GTK_SOURCE_SMART_HOME_END_DISABLED);
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:47:3: error: 'gtk_source_view_set_smart_home_end' was not declared in this scope
   47 |   gtk_source_view_set_smart_home_end(gtkSourceView, GTK_SOURCE_SMART_HOME_END_DISABLED);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:48:3: error: 'gtk_source_view_set_tab_width' was not declared in this scope
   48 |   gtk_source_view_set_tab_width(gtkSourceView, 4);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:49:3: error: 'gtk_container_add' was not declared in this scope
   49 |   gtk_container_add(gtkContainer, gtkWidgetSourceView);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:50:3: error: 'gtk_widget_show' was not declared in this scope
   50 |   gtk_widget_show(gtkWidgetSourceView);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:60:20: error: 'G_OBJECT' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkSourceBuffer), "changed", G_CALLBACK(SourceEdit_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:60:58: error: 'G_CALLBACK' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkSourceBuffer), "changed", G_CALLBACK(SourceEdit_change), (gpointer)this);
      |                                                          ^~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:60:90: error: 'gpointer' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkSourceBuffer), "changed", G_CALLBACK(SourceEdit_change), (gpointer)this);
      |                                                                                          ^~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:60:3: error: 'g_signal_connect' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkSourceBuffer), "changed", G_CALLBACK(SourceEdit_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:61:113: error: expected ')' before 'this'
   61 |   g_signal_connect(G_OBJECT(gtkSourceBuffer), "notify::cursor-position", G_CALLBACK(SourceEdit_move), (gpointer)this);
      |                   ~                                                                                             ^~~~
      |                                                                                                                 )
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'virtual void hiro::pSourceEdit::destruct()':
../hiro/core/../gtk/widget/source-edit.cpp:68:22: error: 'gtkWidgetSourceView' was not declared in this scope
   68 |   gtk_widget_destroy(gtkWidgetSourceView);
      |                      ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:68:3: error: 'gtk_widget_destroy' was not declared in this scope
   68 |   gtk_widget_destroy(gtkWidgetSourceView);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:69:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   69 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setEditable(bool)':
../hiro/core/../gtk/widget/source-edit.cpp:73:30: error: 'gtkTextView' was not declared in this scope
   73 |   gtk_text_view_set_editable(gtkTextView, editable);
      |                              ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:73:3: error: 'gtk_text_view_set_editable' was not declared in this scope
   73 |   gtk_text_view_set_editable(gtkTextView, editable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'virtual void hiro::pSourceEdit::setFocused()':
../hiro/core/../gtk/widget/source-edit.cpp:77:25: error: 'gtkWidgetSourceView' was not declared in this scope
   77 |   gtk_widget_grab_focus(gtkWidgetSourceView);
      |                         ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:77:3: error: 'gtk_widget_grab_focus' was not declared in this scope
   77 |   gtk_widget_grab_focus(gtkWidgetSourceView);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setLanguage(const nall::string&)':
../hiro/core/../gtk/widget/source-edit.cpp:85:3: error: 'gtkSourceLanguage' was not declared in this scope
   85 |   gtkSourceLanguage = gtk_source_language_manager_get_language(gtkSourceLanguageManager, name);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:85:64: error: 'gtkSourceLanguageManager' was not declared in this scope
   85 |   gtkSourceLanguage = gtk_source_language_manager_get_language(gtkSourceLanguageManager, name);
      |                                                                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:85:23: error: 'gtk_source_language_manager_get_language' was not declared in this scope
   85 |   gtkSourceLanguage = gtk_source_language_manager_get_language(gtkSourceLanguageManager, name);
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:86:34: error: 'gtkSourceBuffer' was not declared in this scope
   86 |   gtk_source_buffer_set_language(gtkSourceBuffer, gtkSourceLanguage);
      |                                  ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:86:3: error: 'gtk_source_buffer_set_language' was not declared in this scope
   86 |   gtk_source_buffer_set_language(gtkSourceBuffer, gtkSourceLanguage);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setNumbered(bool)':
../hiro/core/../gtk/widget/source-edit.cpp:90:41: error: 'gtkSourceView' was not declared in this scope
   90 |   gtk_source_view_set_show_line_numbers(gtkSourceView, numbered);
      |                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:90:3: error: 'gtk_source_view_set_show_line_numbers' was not declared in this scope
   90 |   gtk_source_view_set_show_line_numbers(gtkSourceView, numbered);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setScheme(const nall::string&)':
../hiro/core/../gtk/widget/source-edit.cpp:95:3: error: 'gtkSourceStyleScheme' was not declared in this scope
   95 |   gtkSourceStyleScheme = gtk_source_style_scheme_manager_get_scheme(gtkSourceStyleSchemeManager, scheme.downcase());
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:95:69: error: 'gtkSourceStyleSchemeManager' was not declared in this scope
   95 |   gtkSourceStyleScheme = gtk_source_style_scheme_manager_get_scheme(gtkSourceStyleSchemeManager, scheme.downcase());
      |                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:95:26: error: 'gtk_source_style_scheme_manager_get_scheme' was not declared in this scope
   95 |   gtkSourceStyleScheme = gtk_source_style_scheme_manager_get_scheme(gtkSourceStyleSchemeManager, scheme.downcase());
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:97:38: error: 'gtkSourceBuffer' was not declared in this scope
   97 |   gtk_source_buffer_set_style_scheme(gtkSourceBuffer, gtkSourceStyleScheme);
      |                                      ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:97:3: error: 'gtk_source_buffer_set_style_scheme' was not declared in this scope
   97 |   gtk_source_buffer_set_style_scheme(gtkSourceBuffer, gtkSourceStyleScheme);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setText(const nall::string&)':
../hiro/core/../gtk/widget/source-edit.cpp:104:47: error: 'gtkSourceBuffer' was not declared in this scope
  104 |   gtk_source_buffer_begin_not_undoable_action(gtkSourceBuffer);
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:104:3: error: 'gtk_source_buffer_begin_not_undoable_action' was not declared in this scope
  104 |   gtk_source_buffer_begin_not_undoable_action(gtkSourceBuffer);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:105:28: error: 'gtkTextBuffer' was not declared in this scope
  105 |   gtk_text_buffer_set_text(gtkTextBuffer, text, -1);
      |                            ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:105:3: error: 'gtk_text_buffer_set_text' was not declared in this scope
  105 |   gtk_text_buffer_set_text(gtkTextBuffer, text, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:106:3: error: 'gtk_source_buffer_end_not_undoable_action' was not declared in this scope
  106 |   gtk_source_buffer_end_not_undoable_action(gtkSourceBuffer);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setTextCursor(hiro::TextCursor)':
../hiro/core/../gtk/widget/source-edit.cpp:112:3: error: 'GtkTextIter' was not declared in this scope
  112 |   GtkTextIter offset, length;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:113:32: error: 'gtkTextBuffer' was not declared in this scope
  113 |   gtk_text_buffer_get_end_iter(gtkTextBuffer, &offset);
      |                                ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:113:48: error: 'offset' was not declared in this scope; did you mean 'offset_t'?
  113 |   gtk_text_buffer_get_end_iter(gtkTextBuffer, &offset);
      |                                                ^~~~~~
      |                                                offset_t
../hiro/core/../gtk/widget/source-edit.cpp:113:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
  113 |   gtk_text_buffer_get_end_iter(gtkTextBuffer, &offset);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:114:48: error: 'length' was not declared in this scope; did you mean 'len_t'?
  114 |   gtk_text_buffer_get_end_iter(gtkTextBuffer, &length);
      |                                                ^~~~~~
      |                                                len_t
../hiro/core/../gtk/widget/source-edit.cpp:115:16: error: 'gtk_text_iter_get_offset' was not declared in this scope
  115 |   signed end = gtk_text_iter_get_offset(&offset);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:116:3: error: 'gtk_text_iter_set_offset' was not declared in this scope
  116 |   gtk_text_iter_set_offset(&offset, max(0, min(end, cursor.offset())));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:118:3: error: 'gtk_text_buffer_select_range' was not declared in this scope
  118 |   gtk_text_buffer_select_range(gtkTextBuffer, &offset, &length);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:119:15: error: 'gtk_text_buffer_get_mark' was not declared in this scope
  119 |   auto mark = gtk_text_buffer_get_mark(gtkTextBuffer, "insert");
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:120:38: error: 'gtkTextView' was not declared in this scope
  120 |   gtk_text_view_scroll_mark_onscreen(gtkTextView, mark);
      |                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:120:3: error: 'gtk_text_view_scroll_mark_onscreen' was not declared in this scope
  120 |   gtk_text_view_scroll_mark_onscreen(gtkTextView, mark);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'void hiro::pSourceEdit::setWordWrap(bool)':
../hiro/core/../gtk/widget/source-edit.cpp:125:31: error: 'gtkTextView' was not declared in this scope
  125 |   gtk_text_view_set_wrap_mode(gtkTextView, wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                               ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:125:55: error: 'GTK_WRAP_WORD_CHAR' was not declared in this scope
  125 |   gtk_text_view_set_wrap_mode(gtkTextView, wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                                                       ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:125:76: error: 'GTK_WRAP_NONE' was not declared in this scope
  125 |   gtk_text_view_set_wrap_mode(gtkTextView, wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                                                                            ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:125:3: error: 'gtk_text_view_set_wrap_mode' was not declared in this scope
  125 |   gtk_text_view_set_wrap_mode(gtkTextView, wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:126:34: error: 'gtkScrolledWindow' was not declared in this scope
  126 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, wordWrap ? GTK_POLICY_NEVER : GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
      |                                  ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:126:64: error: 'GTK_POLICY_NEVER' was not declared in this scope
  126 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, wordWrap ? GTK_POLICY_NEVER : GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
      |                                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:126:83: error: 'GTK_POLICY_ALWAYS' was not declared in this scope
  126 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, wordWrap ? GTK_POLICY_NEVER : GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
      |                                                                                   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:126:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
  126 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, wordWrap ? GTK_POLICY_NEVER : GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'nall::string hiro::pSourceEdit::text() const':
../hiro/core/../gtk/widget/source-edit.cpp:130:3: error: 'GtkTextIter' was not declared in this scope
  130 |   GtkTextIter startIter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:131:34: error: 'gtkTextBuffer' was not declared in this scope
  131 |   gtk_text_buffer_get_start_iter(gtkTextBuffer, &startIter);
      |                                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:131:50: error: 'startIter' was not declared in this scope
  131 |   gtk_text_buffer_get_start_iter(gtkTextBuffer, &startIter);
      |                                                  ^~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:131:3: error: 'gtk_text_buffer_get_start_iter' was not declared in this scope
  131 |   gtk_text_buffer_get_start_iter(gtkTextBuffer, &startIter);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:133:14: error: expected ';' before 'endIter'
  133 |   GtkTextIter endIter;
      |              ^~~~~~~~
      |              ;
../hiro/core/../gtk/widget/source-edit.cpp:134:48: error: 'endIter' was not declared in this scope
  134 |   gtk_text_buffer_get_end_iter(gtkTextBuffer, &endIter);
      |                                                ^~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:134:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
  134 |   gtk_text_buffer_get_end_iter(gtkTextBuffer, &endIter);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:136:22: error: 'gtk_text_buffer_get_text' was not declared in this scope
  136 |   char* textBuffer = gtk_text_buffer_get_text(gtkTextBuffer, &startIter, &endIter, true);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:138:3: error: 'g_free' was not declared in this scope; did you mean 'free'?
  138 |   g_free(textBuffer);
      |   ^~~~~~
      |   free
../hiro/core/../gtk/widget/source-edit.cpp: In member function 'hiro::TextCursor hiro::pSourceEdit::textCursor() const':
../hiro/core/../gtk/widget/source-edit.cpp:145:25: error: 'gtkSourceBuffer' was not declared in this scope
  145 |   g_object_get(G_OBJECT(gtkSourceBuffer), "cursor-position", &offset, nullptr);
      |                         ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:145:16: error: 'G_OBJECT' was not declared in this scope
  145 |   g_object_get(G_OBJECT(gtkSourceBuffer), "cursor-position", &offset, nullptr);
      |                ^~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:145:3: error: 'g_object_get' was not declared in this scope
  145 |   g_object_get(G_OBJECT(gtkSourceBuffer), "cursor-position", &offset, nullptr);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:147:3: error: 'GtkTextIter' was not declared in this scope
  147 |   GtkTextIter start, end;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:148:43: error: 'gtkTextBuffer' was not declared in this scope
  148 |   if(gtk_text_buffer_get_selection_bounds(gtkTextBuffer, &start, &end)) {
      |                                           ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:148:59: error: 'start' was not declared in this scope; did you mean 'stat'?
  148 |   if(gtk_text_buffer_get_selection_bounds(gtkTextBuffer, &start, &end)) {
      |                                                           ^~~~~
      |                                                           stat
../hiro/core/../gtk/widget/source-edit.cpp:148:67: error: 'end' was not declared in this scope; did you mean 'std::end'?
  148 |   if(gtk_text_buffer_get_selection_bounds(gtkTextBuffer, &start, &end)) {
      |                                                                   ^~~
      |                                                                   std::end
/opt/tools/gcc13/include/c++/13.2.0/initializer_list:99:5: note: 'std::end' declared here
   99 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
../hiro/core/../gtk/widget/source-edit.cpp:148:6: error: 'gtk_text_buffer_get_selection_bounds' was not declared in this scope
  148 |   if(gtk_text_buffer_get_selection_bounds(gtkTextBuffer, &start, &end)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/source-edit.cpp:151:18: error: 'gtk_text_iter_get_offset' was not declared in this scope
  151 |     int origin = gtk_text_iter_get_offset(&start);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:52:
../hiro/core/../gtk/widget/tab-frame.cpp: At global scope:
../hiro/core/../gtk/widget/tab-frame.cpp:5:29: error: 'GtkNotebook' was not declared in this scope
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                             ^~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:5:42: error: 'notebook' was not declared in this scope
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                          ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:5:52: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                    ^~~~~~~~~
      |                                                    wWidget
../hiro/core/../gtk/widget/tab-frame.cpp:5:63: error: 'page' was not declared in this scope
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                               ^~~~
../hiro/core/../gtk/widget/tab-frame.cpp:5:69: error: expected primary-expression before 'unsigned'
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                                     ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:5:97: error: expected primary-expression before '*' token
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                                                                 ^
../hiro/core/../gtk/widget/tab-frame.cpp:5:99: error: 'p' was not declared in this scope
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                                                                   ^
../hiro/core/../gtk/widget/tab-frame.cpp:5:100: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                                                                    ^
../hiro/core/../gtk/widget/tab-frame.cpp:5:102: error: expected ',' or ';' before '->' token
    5 | static auto TabFrame_change(GtkNotebook* notebook, GtkWidget* page, unsigned position, pTabFrame* p) -> void {
      |                                                                                                      ^~
../hiro/core/../gtk/widget/tab-frame.cpp:13:28: error: 'GtkButton' was not declared in this scope; did you mean 'wButton'?
   13 | static auto TabFrame_close(GtkButton* button, pTabFrame* p) -> void {
      |                            ^~~~~~~~~
      |                            wButton
../hiro/core/../gtk/widget/tab-frame.cpp:13:39: error: 'button' was not declared in this scope; did you mean 'Button'?
   13 | static auto TabFrame_close(GtkButton* button, pTabFrame* p) -> void {
      |                                       ^~~~~~
      |                                       Button
../hiro/core/../gtk/widget/tab-frame.cpp:13:56: error: expected primary-expression before '*' token
   13 | static auto TabFrame_close(GtkButton* button, pTabFrame* p) -> void {
      |                                                        ^
../hiro/core/../gtk/widget/tab-frame.cpp:13:58: error: 'p' was not declared in this scope
   13 | static auto TabFrame_close(GtkButton* button, pTabFrame* p) -> void {
      |                                                          ^
../hiro/core/../gtk/widget/tab-frame.cpp:13:59: error: expression list treated as compound expression in initializer [-fpermissive]
   13 | static auto TabFrame_close(GtkButton* button, pTabFrame* p) -> void {
      |                                                           ^
../hiro/core/../gtk/widget/tab-frame.cpp:13:61: error: expected ',' or ';' before '->' token
   13 | static auto TabFrame_close(GtkButton* button, pTabFrame* p) -> void {
      |                                                             ^~
../hiro/core/../gtk/widget/tab-frame.cpp:26:27: error: 'GtkNotebook' was not declared in this scope
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                           ^~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:26:40: error: 'notebook' was not declared in this scope
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                        ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:26:50: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                  ^~~~~~~~~
      |                                                  wWidget
../hiro/core/../gtk/widget/tab-frame.cpp:26:61: error: 'page' was not declared in this scope
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                             ^~~~
../hiro/core/../gtk/widget/tab-frame.cpp:26:67: error: expected primary-expression before 'unsigned'
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                                   ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:26:93: error: expected primary-expression before '*' token
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                                                             ^
../hiro/core/../gtk/widget/tab-frame.cpp:26:95: error: 'p' was not declared in this scope
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                                                               ^
../hiro/core/../gtk/widget/tab-frame.cpp:26:96: error: expression list treated as compound expression in initializer [-fpermissive]
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                                                                ^
../hiro/core/../gtk/widget/tab-frame.cpp:26:98: error: expected ',' or ';' before '->' token
   26 | static auto TabFrame_move(GtkNotebook* notebook, GtkWidget* page, unsigned moveTo, pTabFrame* p) -> void {
      |                                                                                                  ^~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'virtual void hiro::pTabFrame::construct()':
../hiro/core/../gtk/widget/tab-frame.cpp:46:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   46 |   gtkWidget = gtk_notebook_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:46:15: error: 'gtk_notebook_new' was not declared in this scope
   46 |   gtkWidget = gtk_notebook_new();
      |               ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:47:32: error: 'GTK_NOTEBOOK' was not declared in this scope
   47 |   gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkWidget), false);
      |                                ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:47:3: error: 'gtk_notebook_set_show_border' was not declared in this scope
   47 |   gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkWidget), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:48:53: error: 'GTK_POS_TOP' was not declared in this scope
   48 |   gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkWidget), GTK_POS_TOP);
      |                                                     ^~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:48:3: error: 'gtk_notebook_set_tab_pos' was not declared in this scope
   48 |   gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkWidget), GTK_POS_TOP);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:54:20: error: 'G_OBJECT' was not declared in this scope
   54 |   g_signal_connect(G_OBJECT(gtkWidget), "page-reordered", G_CALLBACK(TabFrame_move), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:54:59: error: 'G_CALLBACK' was not declared in this scope
   54 |   g_signal_connect(G_OBJECT(gtkWidget), "page-reordered", G_CALLBACK(TabFrame_move), (gpointer)this);
      |                                                           ^~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:54:87: error: 'gpointer' was not declared in this scope
   54 |   g_signal_connect(G_OBJECT(gtkWidget), "page-reordered", G_CALLBACK(TabFrame_move), (gpointer)this);
      |                                                                                       ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:54:3: error: 'g_signal_connect' was not declared in this scope
   54 |   g_signal_connect(G_OBJECT(gtkWidget), "page-reordered", G_CALLBACK(TabFrame_move), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:55:95: error: expected ')' before 'this'
   55 |   g_signal_connect(G_OBJECT(gtkWidget), "switch-page", G_CALLBACK(TabFrame_change), (gpointer)this);
      |                   ~                                                                           ^~~~
      |                                                                                               )
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'virtual void hiro::pTabFrame::destruct()':
../hiro/core/../gtk/widget/tab-frame.cpp:61:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   61 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:61:3: error: 'gtk_widget_destroy' was not declared in this scope
   61 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: At global scope:
../hiro/core/../gtk/widget/tab-frame.cpp:74:47: error: 'GtkWidget' does not name a type; did you mean 'pWidget'?
   74 | auto pTabFrame::container(mWidget& widget) -> GtkWidget* {
      |                                               ^~~~~~~~~
      |                                               pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:74:56: error: expected initializer before '*' token
   74 | auto pTabFrame::container(mWidget& widget) -> GtkWidget* {
      |                                                        ^
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'void hiro::pTabFrame::remove(hiro::sTabFrameItem)':
../hiro/core/../gtk/widget/tab-frame.cpp:98:67: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   98 |   if(item->offset() == gtk_notebook_get_current_page(GTK_NOTEBOOK(gtkWidget))) {
      |                                                                   ^~~~~~~~~
      |                                                                   pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:98:54: error: 'GTK_NOTEBOOK' was not declared in this scope
   98 |   if(item->offset() == gtk_notebook_get_current_page(GTK_NOTEBOOK(gtkWidget))) {
      |                                                      ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:98:24: error: 'gtk_notebook_get_current_page' was not declared in this scope
   98 |   if(item->offset() == gtk_notebook_get_current_page(GTK_NOTEBOOK(gtkWidget))) {
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:109:41: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  109 |   gtk_notebook_remove_page(GTK_NOTEBOOK(gtkWidget), item->offset());
      |                                         ^~~~~~~~~
      |                                         pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:109:28: error: 'GTK_NOTEBOOK' was not declared in this scope
  109 |   gtk_notebook_remove_page(GTK_NOTEBOOK(gtkWidget), item->offset());
      |                            ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:109:3: error: 'gtk_notebook_remove_page' was not declared in this scope
  109 |   gtk_notebook_remove_page(GTK_NOTEBOOK(gtkWidget), item->offset());
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:111:23: error: 'gtk_notebook_get_current_page' was not declared in this scope
  111 |   unsigned position = gtk_notebook_get_current_page(GTK_NOTEBOOK(gtkWidget));
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'virtual void hiro::pTabFrame::setFont(const hiro::Font&)':
../hiro/core/../gtk/widget/tab-frame.cpp:119:28: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  119 |     pFont::setFont(tabs[n].title, font);
      |                            ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'void hiro::pTabFrame::setItemMovable(unsigned int, bool)':
../hiro/core/../gtk/widget/tab-frame.cpp:153:49: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  153 |   gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(gtkWidget), tabs[position].child, movable);
      |                                                 ^~~~~~~~~
      |                                                 pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:153:36: error: 'GTK_NOTEBOOK' was not declared in this scope
  153 |   gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(gtkWidget), tabs[position].child, movable);
      |                                    ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:153:76: error: 'struct hiro::pTabFrame::Tab' has no member named 'child'
  153 |   gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(gtkWidget), tabs[position].child, movable);
      |                                                                            ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:153:3: error: 'gtk_notebook_set_tab_reorderable' was not declared in this scope
  153 |   gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(gtkWidget), tabs[position].child, movable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'void hiro::pTabFrame::setItemSelected(unsigned int)':
../hiro/core/../gtk/widget/tab-frame.cpp:159:46: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  159 |   gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkWidget), position);
      |                                              ^~~~~~~~~
      |                                              pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:159:33: error: 'GTK_NOTEBOOK' was not declared in this scope
  159 |   gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkWidget), position);
      |                                 ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:159:3: error: 'gtk_notebook_set_current_page' was not declared in this scope
  159 |   gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkWidget), position);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'void hiro::pTabFrame::setNavigation(hiro::Navigation)':
../hiro/core/../gtk/widget/tab-frame.cpp:172:3: error: 'GtkPositionType' was not declared in this scope
  172 |   GtkPositionType type;
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:174:25: error: 'type' was not declared in this scope; did you mean 'wctype'?
  174 |   case Navigation::Top: type = GTK_POS_TOP; break;
      |                         ^~~~
      |                         wctype
../hiro/core/../gtk/widget/tab-frame.cpp:174:32: error: 'GTK_POS_TOP' was not declared in this scope
  174 |   case Navigation::Top: type = GTK_POS_TOP; break;
      |                                ^~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:175:35: error: 'GTK_POS_BOTTOM' was not declared in this scope
  175 |   case Navigation::Bottom: type = GTK_POS_BOTTOM; break;
      |                                   ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:176:33: error: 'GTK_POS_LEFT' was not declared in this scope
  176 |   case Navigation::Left: type = GTK_POS_LEFT; break;
      |                                 ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:177:34: error: 'GTK_POS_RIGHT' was not declared in this scope
  177 |   case Navigation::Right: type = GTK_POS_RIGHT; break;
      |                                  ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:179:41: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  179 |   gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkWidget), type);
      |                                         ^~~~~~~~~
      |                                         pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:179:28: error: 'GTK_NOTEBOOK' was not declared in this scope
  179 |   gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkWidget), type);
      |                            ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:179:53: error: 'type' was not declared in this scope; did you mean 'wctype'?
  179 |   gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkWidget), type);
      |                                                     ^~~~
      |                                                     wctype
../hiro/core/../gtk/widget/tab-frame.cpp:179:3: error: 'gtk_notebook_set_tab_pos' was not declared in this scope
  179 |   gtk_notebook_set_tab_pos(GTK_NOTEBOOK(gtkWidget), type);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'void hiro::pTabFrame::_append()':
../hiro/core/../gtk/widget/tab-frame.cpp:188:7: error: 'struct hiro::pTabFrame::Tab' has no member named 'child'
  188 |   tab.child = gtk_fixed_new();
      |       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:188:15: error: 'gtk_fixed_new' was not declared in this scope
  188 |   tab.child = gtk_fixed_new();
      |               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:192:7: error: 'struct hiro::pTabFrame::Tab' has no member named 'container'
  192 |   tab.container = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |       ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:192:31: error: 'GTK_ORIENTATION_HORIZONTAL' was not declared in this scope
  192 |   tab.container = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:192:19: error: 'gtk_box_new' was not declared in this scope
  192 |   tab.container = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |                   ^~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:194:7: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  194 |   tab.image = gtk_image_new();
      |       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:194:15: error: 'gtk_image_new' was not declared in this scope
  194 |   tab.image = gtk_image_new();
      |               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:195:7: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  195 |   tab.title = gtk_label_new("");
      |       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:195:15: error: 'gtk_label_new' was not declared in this scope
  195 |   tab.title = gtk_label_new("");
      |               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:196:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  196 |   gtk_misc_set_alignment(GTK_MISC(tab.title), 0.0, 0.5);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:196:26: error: 'GTK_MISC' was not declared in this scope
  196 |   gtk_misc_set_alignment(GTK_MISC(tab.title), 0.0, 0.5);
      |                          ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:196:3: error: 'gtk_misc_set_alignment' was not declared in this scope
  196 |   gtk_misc_set_alignment(GTK_MISC(tab.title), 0.0, 0.5);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:197:7: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  197 |   tab.close = gtk_button_new_with_label("\u00d7");  //Unicode multiplication sign (looks better than 'X')
      |       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:197:15: error: 'gtk_button_new_with_label' was not declared in this scope
  197 |   tab.close = gtk_button_new_with_label("\u00d7");  //Unicode multiplication sign (looks better than 'X')
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:198:48: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  198 |   gtk_button_set_focus_on_click(GTK_BUTTON(tab.close), false);
      |                                                ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:198:33: error: 'GTK_BUTTON' was not declared in this scope
  198 |   gtk_button_set_focus_on_click(GTK_BUTTON(tab.close), false);
      |                                 ^~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:198:3: error: 'gtk_button_set_focus_on_click' was not declared in this scope
  198 |   gtk_button_set_focus_on_click(GTK_BUTTON(tab.close), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:199:40: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  199 |   gtk_button_set_relief(GTK_BUTTON(tab.close), GTK_RELIEF_NONE);
      |                                        ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:199:48: error: 'GTK_RELIEF_NONE' was not declared in this scope
  199 |   gtk_button_set_relief(GTK_BUTTON(tab.close), GTK_RELIEF_NONE);
      |                                                ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:199:3: error: 'gtk_button_set_relief' was not declared in this scope
  199 |   gtk_button_set_relief(GTK_BUTTON(tab.close), GTK_RELIEF_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:200:22: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  200 |   pFont::setFont(tab.close, Font("sans", 9).setBold());
      |                      ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:201:16: error: 'CreateColor' was not declared in this scope
  201 |   auto color = CreateColor({255, 0, 0});
      |                ^~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:202:54: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  202 |   gtk_widget_modify_fg(gtk_bin_get_child(GTK_BIN(tab.close)), GTK_STATE_PRELIGHT, &color);
      |                                                      ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:202:42: error: 'GTK_BIN' was not declared in this scope
  202 |   gtk_widget_modify_fg(gtk_bin_get_child(GTK_BIN(tab.close)), GTK_STATE_PRELIGHT, &color);
      |                                          ^~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:202:24: error: 'gtk_bin_get_child' was not declared in this scope
  202 |   gtk_widget_modify_fg(gtk_bin_get_child(GTK_BIN(tab.close)), GTK_STATE_PRELIGHT, &color);
      |                        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:202:63: error: 'GTK_STATE_PRELIGHT' was not declared in this scope
  202 |   gtk_widget_modify_fg(gtk_bin_get_child(GTK_BIN(tab.close)), GTK_STATE_PRELIGHT, &color);
      |                                                               ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:202:3: error: 'gtk_widget_modify_fg' was not declared in this scope
  202 |   gtk_widget_modify_fg(gtk_bin_get_child(GTK_BIN(tab.close)), GTK_STATE_PRELIGHT, &color);
      |   ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:205:23: error: 'struct hiro::pTabFrame::Tab' has no member named 'child'
  205 |   gtk_widget_show(tab.child);
      |                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:205:3: error: 'gtk_widget_show' was not declared in this scope
  205 |   gtk_widget_show(tab.child);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:206:23: error: 'struct hiro::pTabFrame::Tab' has no member named 'container'
  206 |   gtk_widget_show(tab.container);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:207:23: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  207 |   gtk_widget_show(tab.image);
      |                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:208:23: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  208 |   gtk_widget_show(tab.title);
      |                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:209:23: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  209 |   gtk_widget_show(tab.close);
      |                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:210:34: error: 'struct hiro::pTabFrame::Tab' has no member named 'container'
  210 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.image, false, false, 0);
      |                                  ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:210:22: error: 'GTK_BOX' was not declared in this scope
  210 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.image, false, false, 0);
      |                      ^~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:210:50: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  210 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.image, false, false, 0);
      |                                                  ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:210:3: error: 'gtk_box_pack_start' was not declared in this scope
  210 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.image, false, false, 0);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:211:34: error: 'struct hiro::pTabFrame::Tab' has no member named 'container'
  211 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.title, true, true, 0);
      |                                  ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:211:50: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  211 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.title, true, true, 0);
      |                                                  ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:212:34: error: 'struct hiro::pTabFrame::Tab' has no member named 'container'
  212 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.close, false, false, 0);
      |                                  ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:212:50: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  212 |   gtk_box_pack_start(GTK_BOX(tab.container), tab.close, false, false, 0);
      |                                                  ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:214:33: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  214 |   g_signal_connect(G_OBJECT(tab.close), "clicked", G_CALLBACK(TabFrame_close), (gpointer)this);
      |                                 ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:214:20: error: 'G_OBJECT' was not declared in this scope
  214 |   g_signal_connect(G_OBJECT(tab.close), "clicked", G_CALLBACK(TabFrame_close), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:214:52: error: 'G_CALLBACK' was not declared in this scope
  214 |   g_signal_connect(G_OBJECT(tab.close), "clicked", G_CALLBACK(TabFrame_close), (gpointer)this);
      |                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:214:81: error: 'gpointer' was not declared in this scope
  214 |   g_signal_connect(G_OBJECT(tab.close), "clicked", G_CALLBACK(TabFrame_close), (gpointer)this);
      |                                                                                 ^~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:214:3: error: 'g_signal_connect' was not declared in this scope
  214 |   g_signal_connect(G_OBJECT(tab.close), "clicked", G_CALLBACK(TabFrame_close), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:215:41: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
  215 |   gtk_notebook_append_page(GTK_NOTEBOOK(gtkWidget), tab.child, tab.container);
      |                                         ^~~~~~~~~
      |                                         pWidget
../hiro/core/../gtk/widget/tab-frame.cpp:215:28: error: 'GTK_NOTEBOOK' was not declared in this scope
  215 |   gtk_notebook_append_page(GTK_NOTEBOOK(gtkWidget), tab.child, tab.container);
      |                            ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:215:57: error: 'struct hiro::pTabFrame::Tab' has no member named 'child'
  215 |   gtk_notebook_append_page(GTK_NOTEBOOK(gtkWidget), tab.child, tab.container);
      |                                                         ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:215:68: error: 'struct hiro::pTabFrame::Tab' has no member named 'container'
  215 |   gtk_notebook_append_page(GTK_NOTEBOOK(gtkWidget), tab.child, tab.container);
      |                                                                    ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:215:3: error: 'gtk_notebook_append_page' was not declared in this scope
  215 |   gtk_notebook_append_page(GTK_NOTEBOOK(gtkWidget), tab.child, tab.container);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'void hiro::pTabFrame::_synchronizeTab(unsigned int)':
../hiro/core/../gtk/widget/tab-frame.cpp:232:30: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  232 |   gtk_widget_set_visible(tab.close, item->closable());
      |                              ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:232:3: error: 'gtk_widget_set_visible' was not declared in this scope
  232 |   gtk_widget_set_visible(tab.close, item->closable());
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:235:19: error: 'CreatePixbuf' was not declared in this scope
  235 |     auto pixbuf = CreatePixbuf(icon, true);
      |                   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:236:45: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  236 |     gtk_image_set_from_pixbuf(GTK_IMAGE(tab.image), pixbuf);
      |                                             ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:236:31: error: 'GTK_IMAGE' was not declared in this scope
  236 |     gtk_image_set_from_pixbuf(GTK_IMAGE(tab.image), pixbuf);
      |                               ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:236:5: error: 'gtk_image_set_from_pixbuf' was not declared in this scope
  236 |     gtk_image_set_from_pixbuf(GTK_IMAGE(tab.image), pixbuf);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:238:35: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  238 |     gtk_image_clear(GTK_IMAGE(tab.image));
      |                                   ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:238:21: error: 'GTK_IMAGE' was not declared in this scope
  238 |     gtk_image_clear(GTK_IMAGE(tab.image));
      |                     ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:238:5: error: 'gtk_image_clear' was not declared in this scope
  238 |     gtk_image_clear(GTK_IMAGE(tab.image));
      |     ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:245:36: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  245 |   gtk_label_set_text(GTK_LABEL(tab.title), text);
      |                                    ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:245:22: error: 'GTK_LABEL' was not declared in this scope
  245 |   gtk_label_set_text(GTK_LABEL(tab.title), text);
      |                      ^~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:245:3: error: 'gtk_label_set_text' was not declared in this scope
  245 |   gtk_label_set_text(GTK_LABEL(tab.title), text);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'unsigned int hiro::pTabFrame::_tabHeight()':
../hiro/core/../gtk/widget/tab-frame.cpp:253:5: error: 'GtkAllocation' was not declared in this scope
  253 |     GtkAllocation imageAllocation, titleAllocation, closeAllocation;
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:254:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  254 |     gtk_widget_get_allocation(tabs[n].image, &imageAllocation);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:254:47: error: 'imageAllocation' was not declared in this scope
  254 |     gtk_widget_get_allocation(tabs[n].image, &imageAllocation);
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:254:5: error: 'gtk_widget_get_allocation' was not declared in this scope
  254 |     gtk_widget_get_allocation(tabs[n].image, &imageAllocation);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:255:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  255 |     gtk_widget_get_allocation(tabs[n].title, &titleAllocation);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:255:47: error: 'titleAllocation' was not declared in this scope
  255 |     gtk_widget_get_allocation(tabs[n].title, &titleAllocation);
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:256:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  256 |     gtk_widget_get_allocation(tabs[n].close, &closeAllocation);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:256:47: error: 'closeAllocation' was not declared in this scope
  256 |     gtk_widget_get_allocation(tabs[n].close, &closeAllocation);
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp: In member function 'unsigned int hiro::pTabFrame::_tabWidth()':
../hiro/core/../gtk/widget/tab-frame.cpp:270:5: error: 'GtkAllocation' was not declared in this scope
  270 |     GtkAllocation imageAllocation, titleAllocation, closeAllocation;
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:271:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'image'
  271 |     gtk_widget_get_allocation(tabs[n].image, &imageAllocation);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:271:47: error: 'imageAllocation' was not declared in this scope
  271 |     gtk_widget_get_allocation(tabs[n].image, &imageAllocation);
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:271:5: error: 'gtk_widget_get_allocation' was not declared in this scope
  271 |     gtk_widget_get_allocation(tabs[n].image, &imageAllocation);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:272:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'title'
  272 |     gtk_widget_get_allocation(tabs[n].title, &titleAllocation);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:272:47: error: 'titleAllocation' was not declared in this scope
  272 |     gtk_widget_get_allocation(tabs[n].title, &titleAllocation);
      |                                               ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:273:39: error: 'struct hiro::pTabFrame::Tab' has no member named 'close'
  273 |     gtk_widget_get_allocation(tabs[n].close, &closeAllocation);
      |                                       ^~~~~
../hiro/core/../gtk/widget/tab-frame.cpp:273:47: error: 'closeAllocation' was not declared in this scope
  273 |     gtk_widget_get_allocation(tabs[n].close, &closeAllocation);
      |                                               ^~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:54:
../hiro/core/../gtk/widget/table-view.cpp: At global scope:
../hiro/core/../gtk/widget/table-view.cpp:5:32: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                ^~~~~~~~~~~
      |                                wTreeView
../hiro/core/../gtk/widget/table-view.cpp:5:44: error: expected primary-expression before ',' token
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                            ^
../hiro/core/../gtk/widget/table-view.cpp:5:46: error: 'GtkTreePath' was not declared in this scope
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                              ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:5:59: error: 'gtkRow' was not declared in this scope
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                           ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:5:67: error: 'GtkTreeViewColumn' was not declared in this scope
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                                   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:5:86: error: 'gtkColumn' was not declared in this scope
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                                                      ^~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:5:107: error: expected primary-expression before '*' token
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:5:109: error: 'p' was not declared in this scope
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                                                                             ^
../hiro/core/../gtk/widget/table-view.cpp:5:110: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                                                                              ^
../hiro/core/../gtk/widget/table-view.cpp:5:112: error: expected ',' or ';' before '->' token
    5 | static auto TableView_activate(GtkTreeView*, GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn, pTableView* p) -> void { return p->_doActivate(gtkRow, gtkColumn); }
      |                                                                                                                ^~
../hiro/core/../gtk/widget/table-view.cpp:6:35: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                   ^~~~~~~~~~~
      |                                   wTreeView
../hiro/core/../gtk/widget/table-view.cpp:6:48: error: 'treeView' was not declared in this scope; did you mean 'TreeView'?
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                ^~~~~~~~
      |                                                TreeView
../hiro/core/../gtk/widget/table-view.cpp:6:58: error: 'GdkEventButton' was not declared in this scope
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:6:74: error: 'event' was not declared in this scope; did you mean 'servent'?
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                                          ^~~~~
      |                                                                          servent
../hiro/core/../gtk/widget/table-view.cpp:6:91: error: expected primary-expression before '*' token
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:6:93: error: 'p' was not declared in this scope
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                                                             ^
../hiro/core/../gtk/widget/table-view.cpp:6:94: error: expression list treated as compound expression in initializer [-fpermissive]
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                                                              ^
../hiro/core/../gtk/widget/table-view.cpp:6:96: error: expected ',' or ';' before '->' token
    6 | static auto TableView_buttonEvent(GtkTreeView* treeView, GdkEventButton* event, pTableView* p) -> signed { return p->_doEvent(event); }
      |                                                                                                ^~
../hiro/core/../gtk/widget/table-view.cpp:7:30: error: 'GtkTreeSelection' was not declared in this scope
    7 | static auto TableView_change(GtkTreeSelection*, pTableView* p) -> void { return p->_doChange(); }
      |                              ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:7:47: error: expected primary-expression before ',' token
    7 | static auto TableView_change(GtkTreeSelection*, pTableView* p) -> void { return p->_doChange(); }
      |                                               ^
../hiro/core/../gtk/widget/table-view.cpp:7:59: error: expected primary-expression before '*' token
    7 | static auto TableView_change(GtkTreeSelection*, pTableView* p) -> void { return p->_doChange(); }
      |                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:7:61: error: 'p' was not declared in this scope
    7 | static auto TableView_change(GtkTreeSelection*, pTableView* p) -> void { return p->_doChange(); }
      |                                                             ^
../hiro/core/../gtk/widget/table-view.cpp:7:62: error: expression list treated as compound expression in initializer [-fpermissive]
    7 | static auto TableView_change(GtkTreeSelection*, pTableView* p) -> void { return p->_doChange(); }
      |                                                              ^
../hiro/core/../gtk/widget/table-view.cpp:7:64: error: expected ',' or ';' before '->' token
    7 | static auto TableView_change(GtkTreeSelection*, pTableView* p) -> void { return p->_doChange(); }
      |                                                                ^~
../hiro/core/../gtk/widget/table-view.cpp:8:28: error: 'GtkCellRendererText' was not declared in this scope
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                            ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:8:49: error: 'renderer' was not declared in this scope
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                 ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:8:59: error: expected primary-expression before 'const'
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                           ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:8:77: error: expected primary-expression before 'const'
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                                             ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:8:105: error: expected primary-expression before '*' token
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                                                                         ^
../hiro/core/../gtk/widget/table-view.cpp:8:107: error: 'p' was not declared in this scope
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:8:108: error: expression list treated as compound expression in initializer [-fpermissive]
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                                                                            ^
../hiro/core/../gtk/widget/table-view.cpp:8:110: error: expected ',' or ';' before '->' token
    8 | static auto TableView_edit(GtkCellRendererText* renderer, const char* path, const char* text, pTableView* p) -> void { return p->_doEdit(renderer, path, text); }
      |                                                                                                              ^~
../hiro/core/../gtk/widget/table-view.cpp:9:38: error: 'GtkTreeViewColumn' was not declared in this scope
    9 | static auto TableView_headerActivate(GtkTreeViewColumn* column, pTableView* p) -> void { return p->_doHeaderActivate(column); }
      |                                      ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:9:57: error: 'column' was not declared in this scope
    9 | static auto TableView_headerActivate(GtkTreeViewColumn* column, pTableView* p) -> void { return p->_doHeaderActivate(column); }
      |                                                         ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:9:75: error: expected primary-expression before '*' token
    9 | static auto TableView_headerActivate(GtkTreeViewColumn* column, pTableView* p) -> void { return p->_doHeaderActivate(column); }
      |                                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:9:77: error: 'p' was not declared in this scope
    9 | static auto TableView_headerActivate(GtkTreeViewColumn* column, pTableView* p) -> void { return p->_doHeaderActivate(column); }
      |                                                                             ^
../hiro/core/../gtk/widget/table-view.cpp:9:78: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | static auto TableView_headerActivate(GtkTreeViewColumn* column, pTableView* p) -> void { return p->_doHeaderActivate(column); }
      |                                                                              ^
../hiro/core/../gtk/widget/table-view.cpp:9:80: error: expected ',' or ';' before '->' token
    9 | static auto TableView_headerActivate(GtkTreeViewColumn* column, pTableView* p) -> void { return p->_doHeaderActivate(column); }
      |                                                                                ^~
../hiro/core/../gtk/widget/table-view.cpp:10:37: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                     ^~~~~~~~~~~
      |                                     wTreeView
../hiro/core/../gtk/widget/table-view.cpp:10:50: error: 'treeView' was not declared in this scope; did you mean 'TreeView'?
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                  ^~~~~~~~
      |                                                  TreeView
../hiro/core/../gtk/widget/table-view.cpp:10:60: error: 'GdkEventKey' was not declared in this scope
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                            ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:10:73: error: 'event' was not declared in this scope; did you mean 'servent'?
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                                         ^~~~~
      |                                                                         servent
../hiro/core/../gtk/widget/table-view.cpp:10:90: error: expected primary-expression before '*' token
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                                                          ^
../hiro/core/../gtk/widget/table-view.cpp:10:92: error: 'p' was not declared in this scope
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                                                            ^
../hiro/core/../gtk/widget/table-view.cpp:10:93: error: expression list treated as compound expression in initializer [-fpermissive]
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                                                             ^
../hiro/core/../gtk/widget/table-view.cpp:10:95: error: expected ',' or ';' before '->' token
   10 | static auto TableView_keyPressEvent(GtkTreeView* treeView, GdkEventKey* event, pTableView* p) -> bool { return p->_doKeyPress(event); }
      |                                                                                               ^~
../hiro/core/../gtk/widget/table-view.cpp:11:38: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                      ^~~~~~~~~
      |                                      wWidget
../hiro/core/../gtk/widget/table-view.cpp:11:48: error: expected primary-expression before ',' token
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                ^
../hiro/core/../gtk/widget/table-view.cpp:11:50: error: 'GdkEvent' was not declared in this scope
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                  ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:11:59: error: expected primary-expression before ',' token
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:11:71: error: expected primary-expression before '*' token
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                                       ^
../hiro/core/../gtk/widget/table-view.cpp:11:73: error: 'p' was not declared in this scope
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                                         ^
../hiro/core/../gtk/widget/table-view.cpp:11:74: error: expression list treated as compound expression in initializer [-fpermissive]
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                                          ^
../hiro/core/../gtk/widget/table-view.cpp:11:76: error: expected ',' or ';' before '->' token
   11 | static auto TableView_mouseMoveEvent(GtkWidget*, GdkEvent*, pTableView* p) -> signed { return p->_doMouseMove(); }
      |                                                                            ^~
../hiro/core/../gtk/widget/table-view.cpp:12:29: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   12 | static auto TableView_popup(GtkTreeView*, pTableView* p) -> void { return p->_doContext(); }
      |                             ^~~~~~~~~~~
      |                             wTreeView
../hiro/core/../gtk/widget/table-view.cpp:12:41: error: expected primary-expression before ',' token
   12 | static auto TableView_popup(GtkTreeView*, pTableView* p) -> void { return p->_doContext(); }
      |                                         ^
../hiro/core/../gtk/widget/table-view.cpp:12:53: error: expected primary-expression before '*' token
   12 | static auto TableView_popup(GtkTreeView*, pTableView* p) -> void { return p->_doContext(); }
      |                                                     ^
../hiro/core/../gtk/widget/table-view.cpp:12:55: error: 'p' was not declared in this scope
   12 | static auto TableView_popup(GtkTreeView*, pTableView* p) -> void { return p->_doContext(); }
      |                                                       ^
../hiro/core/../gtk/widget/table-view.cpp:12:56: error: expression list treated as compound expression in initializer [-fpermissive]
   12 | static auto TableView_popup(GtkTreeView*, pTableView* p) -> void { return p->_doContext(); }
      |                                                        ^
../hiro/core/../gtk/widget/table-view.cpp:12:58: error: expected ',' or ';' before '->' token
   12 | static auto TableView_popup(GtkTreeView*, pTableView* p) -> void { return p->_doContext(); }
      |                                                          ^~
../hiro/core/../gtk/widget/table-view.cpp:14:32: error: 'GtkTreeViewColumn' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:14:51: error: 'column' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                   ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:14:59: error: 'GtkCellRenderer' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                           ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:14:76: error: 'renderer' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                            ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:14:86: error: 'GtkTreeModel' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                      ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:14:100: error: 'model' was not declared in this scope; did you mean 'modfl'?
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                    ^~~~~
      |                                                                                                    modfl
../hiro/core/../gtk/widget/table-view.cpp:14:107: error: 'GtkTreeIter' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                           ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:14:120: error: 'iter' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                        ^~~~
../hiro/core/../gtk/widget/table-view.cpp:14:136: error: expected primary-expression before '*' token
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                        ^
../hiro/core/../gtk/widget/table-view.cpp:14:138: error: 'p' was not declared in this scope
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                          ^
../hiro/core/../gtk/widget/table-view.cpp:14:139: error: expression list treated as compound expression in initializer [-fpermissive]
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:14:141: error: expected ',' or ';' before '->' token
   14 | static auto TableView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTableView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                             ^~
../hiro/core/../gtk/widget/table-view.cpp:15:30: error: 'GtkCellRendererToggle' was not declared in this scope
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                              ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:15:53: error: 'toggle' was not declared in this scope
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                                                     ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:15:61: error: expected primary-expression before 'const'
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                                                             ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:15:89: error: expected primary-expression before '*' token
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                                                                                         ^
../hiro/core/../gtk/widget/table-view.cpp:15:91: error: 'p' was not declared in this scope
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                                                                                           ^
../hiro/core/../gtk/widget/table-view.cpp:15:92: error: expression list treated as compound expression in initializer [-fpermissive]
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                                                                                            ^
../hiro/core/../gtk/widget/table-view.cpp:15:94: error: expected ',' or ';' before '->' token
   15 | static auto TableView_toggle(GtkCellRendererToggle* toggle, const char* path, pTableView* p) -> void { return p->_doToggle(toggle, path); }
      |                                                                                              ^~
../hiro/core/../gtk/widget/table-view.cpp:17:31: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   17 | static auto TableView_realize(GtkTreeView*, pTableView* p) -> void {
      |                               ^~~~~~~~~~~
      |                               wTreeView
../hiro/core/../gtk/widget/table-view.cpp:17:43: error: expected primary-expression before ',' token
   17 | static auto TableView_realize(GtkTreeView*, pTableView* p) -> void {
      |                                           ^
../hiro/core/../gtk/widget/table-view.cpp:17:55: error: expected primary-expression before '*' token
   17 | static auto TableView_realize(GtkTreeView*, pTableView* p) -> void {
      |                                                       ^
../hiro/core/../gtk/widget/table-view.cpp:17:57: error: 'p' was not declared in this scope
   17 | static auto TableView_realize(GtkTreeView*, pTableView* p) -> void {
      |                                                         ^
../hiro/core/../gtk/widget/table-view.cpp:17:58: error: expression list treated as compound expression in initializer [-fpermissive]
   17 | static auto TableView_realize(GtkTreeView*, pTableView* p) -> void {
      |                                                          ^
../hiro/core/../gtk/widget/table-view.cpp:17:60: error: expected ',' or ';' before '->' token
   17 | static auto TableView_realize(GtkTreeView*, pTableView* p) -> void {
      |                                                            ^~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'virtual void hiro::pTableView::construct()':
../hiro/core/../gtk/widget/table-view.cpp:27:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   27 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/table-view.cpp:27:15: error: 'gtk_scrolled_window_new' was not declared in this scope
   27 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:28:3: error: 'gtkScrolledWindow' was not declared in this scope
   28 |   gtkScrolledWindow = GTK_SCROLLED_WINDOW(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:28:23: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   28 |   gtkScrolledWindow = GTK_SCROLLED_WINDOW(gtkWidget);
      |                       ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:29:53: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   29 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                                     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:29:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   29 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:30:58: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   30 |   gtk_scrolled_window_set_shadow_type(gtkScrolledWindow, GTK_SHADOW_ETCHED_IN);
      |                                                          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:30:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   30 |   gtk_scrolled_window_set_shadow_type(gtkScrolledWindow, GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:32:3: error: 'gtkWidgetChild' was not declared in this scope
   32 |   gtkWidgetChild = gtk_tree_view_new();
      |   ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:32:20: error: 'gtk_tree_view_new' was not declared in this scope
   32 |   gtkWidgetChild = gtk_tree_view_new();
      |                    ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:33:3: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   33 |   gtkTreeView = GTK_TREE_VIEW(gtkWidgetChild);
      |   ^~~~~~~~~~~
      |   wTreeView
../hiro/core/../gtk/widget/table-view.cpp:33:17: error: 'GTK_TREE_VIEW' was not declared in this scope
   33 |   gtkTreeView = GTK_TREE_VIEW(gtkWidgetChild);
      |                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:34:3: error: 'gtkTreeSelection' was not declared in this scope
   34 |   gtkTreeSelection = gtk_tree_view_get_selection(gtkTreeView);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:34:22: error: 'gtk_tree_view_get_selection' was not declared in this scope
   34 |   gtkTreeSelection = gtk_tree_view_get_selection(gtkTreeView);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:35:21: error: 'GTK_CONTAINER' was not declared in this scope
   35 |   gtk_container_add(GTK_CONTAINER(gtkWidget), gtkWidgetChild);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:35:3: error: 'gtk_container_add' was not declared in this scope
   35 |   gtk_container_add(GTK_CONTAINER(gtkWidget), gtkWidgetChild);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:36:3: error: 'gtk_tree_view_set_rubber_banding' was not declared in this scope
   36 |   gtk_tree_view_set_rubber_banding(gtkTreeView, true);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:38:3: error: 'gtk_widget_show' was not declared in this scope
   38 |   gtk_widget_show(gtkWidgetChild);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:48:20: error: 'G_OBJECT' was not declared in this scope
   48 |   g_signal_connect(G_OBJECT(gtkTreeView), "button-press-event", G_CALLBACK(TableView_buttonEvent), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:48:65: error: 'G_CALLBACK' was not declared in this scope
   48 |   g_signal_connect(G_OBJECT(gtkTreeView), "button-press-event", G_CALLBACK(TableView_buttonEvent), (gpointer)this);
      |                                                                 ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:48:101: error: 'gpointer' was not declared in this scope
   48 |   g_signal_connect(G_OBJECT(gtkTreeView), "button-press-event", G_CALLBACK(TableView_buttonEvent), (gpointer)this);
      |                                                                                                     ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:48:3: error: 'g_signal_connect' was not declared in this scope
   48 |   g_signal_connect(G_OBJECT(gtkTreeView), "button-press-event", G_CALLBACK(TableView_buttonEvent), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:49:112: error: expected ')' before 'this'
   49 |   g_signal_connect(G_OBJECT(gtkTreeView), "button-release-event", G_CALLBACK(TableView_buttonEvent), (gpointer)this);
      |                   ~                                                                                            ^~~~
      |                                                                                                                )
../hiro/core/../gtk/widget/table-view.cpp:50:109: error: expected ')' before 'this'
   50 |   g_signal_connect(G_OBJECT(gtkTreeView), "key-press-event", G_CALLBACK(TableView_keyPressEvent), (gpointer)this);
      |                   ~                                                                                         ^~~~
      |                                                                                                             )
../hiro/core/../gtk/widget/table-view.cpp:51:114: error: expected ')' before 'this'
   51 |   g_signal_connect(G_OBJECT(gtkTreeView), "motion-notify-event", G_CALLBACK(TableView_mouseMoveEvent), (gpointer)this);
      |                   ~                                                                                              ^~~~
      |                                                                                                                  )
../hiro/core/../gtk/widget/table-view.cpp:52:96: error: expected ')' before 'this'
   52 |   g_signal_connect(G_OBJECT(gtkTreeView), "popup-menu", G_CALLBACK(TableView_popup), (gpointer)this);
      |                   ~                                                                            ^~~~
      |                                                                                                )
../hiro/core/../gtk/widget/table-view.cpp:53:95: error: expected ')' before 'this'
   53 |   g_signal_connect(G_OBJECT(gtkTreeView), "realize", G_CALLBACK(TableView_realize), (gpointer)this);
      |                   ~                                                                           ^~~~
      |                                                                                               )
../hiro/core/../gtk/widget/table-view.cpp:54:102: error: expected ')' before 'this'
   54 |   g_signal_connect(G_OBJECT(gtkTreeView), "row-activated", G_CALLBACK(TableView_activate), (gpointer)this);
      |                   ~                                                                                  ^~~~
      |                                                                                                      )
../hiro/core/../gtk/widget/table-view.cpp:55:99: error: expected ')' before 'this'
   55 |   g_signal_connect(G_OBJECT(gtkTreeSelection), "changed", G_CALLBACK(TableView_change), (gpointer)this);
      |                   ~                                                                               ^~~~
      |                                                                                                   )
../hiro/core/../gtk/widget/table-view.cpp:58:3: error: 'gtkEntry' was not declared in this scope
   58 |   gtkEntry = (GtkEntry*)gtk_entry_new();
      |   ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:58:15: error: 'GtkEntry' was not declared in this scope
   58 |   gtkEntry = (GtkEntry*)gtk_entry_new();
      |               ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:58:24: error: expected primary-expression before ')' token
   58 |   gtkEntry = (GtkEntry*)gtk_entry_new();
      |                        ^
../hiro/core/../gtk/widget/table-view.cpp:59:3: error: 'gtk_tree_view_set_search_entry' was not declared in this scope
   59 |   gtk_tree_view_set_search_entry(gtkTreeView, gtkEntry);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'virtual void hiro::pTableView::destruct()':
../hiro/core/../gtk/widget/table-view.cpp:65:33: error: 'gtkEntry' was not declared in this scope
   65 |   gtk_widget_destroy(GTK_WIDGET(gtkEntry));
      |                                 ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:65:22: error: 'GTK_WIDGET' was not declared in this scope
   65 |   gtk_widget_destroy(GTK_WIDGET(gtkEntry));
      |                      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:65:3: error: 'gtk_widget_destroy' was not declared in this scope
   65 |   gtk_widget_destroy(GTK_WIDGET(gtkEntry));
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:66:22: error: 'gtkWidgetChild' was not declared in this scope
   66 |   gtk_widget_destroy(gtkWidgetChild);
      |                      ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:67:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   67 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/table-view.cpp: In member function 'virtual bool hiro::pTableView::focused() const':
../hiro/core/../gtk/widget/table-view.cpp:78:42: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   78 |   return gtk_widget_has_focus(GTK_WIDGET(gtkTreeView));
      |                                          ^~~~~~~~~~~
      |                                          wTreeView
../hiro/core/../gtk/widget/table-view.cpp:78:31: error: 'GTK_WIDGET' was not declared in this scope
   78 |   return gtk_widget_has_focus(GTK_WIDGET(gtkTreeView));
      |                               ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:78:10: error: 'gtk_widget_has_focus' was not declared in this scope
   78 |   return gtk_widget_has_focus(GTK_WIDGET(gtkTreeView));
      |          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::resizeColumns()':
../hiro/core/../gtk/widget/table-view.cpp:102:58: error: 'gtkScrolledWindow' was not declared in this scope
  102 |   if(auto scrollBar = gtk_scrolled_window_get_vscrollbar(gtkScrolledWindow)) {
      |                                                          ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:102:23: error: 'gtk_scrolled_window_get_vscrollbar' was not declared in this scope
  102 |   if(auto scrollBar = gtk_scrolled_window_get_vscrollbar(gtkScrolledWindow)) {
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:103:5: error: 'GtkAllocation' was not declared in this scope
  103 |     GtkAllocation allocation;
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:104:43: error: 'allocation' was not declared in this scope
  104 |     gtk_widget_get_allocation(scrollBar, &allocation);
      |                                           ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:104:5: error: 'gtk_widget_get_allocation' was not declared in this scope
  104 |     gtk_widget_get_allocation(scrollBar, &allocation);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:105:8: error: 'gtk_widget_get_visible' was not declared in this scope
  105 |     if(gtk_widget_get_visible(scrollBar)) maximumWidth -= allocation.width;
      |        ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:117:52: error: 'struct hiro::pTableViewColumn' has no member named 'gtkColumn'
  117 |       gtk_tree_view_column_set_fixed_width(column->gtkColumn, width);
      |                                                    ^~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:117:7: error: 'gtk_tree_view_column_set_fixed_width' was not declared in this scope
  117 |       gtk_tree_view_column_set_fixed_width(column->gtkColumn, width);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/table-view.cpp:127:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
  127 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/table-view.cpp:128:26: error: 'gtkWidgetChild' was not declared in this scope
  128 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:128:42: error: 'GTK_STATE_NORMAL' was not declared in this scope
  128 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                          ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:128:69: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
  128 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                     ^~~~~~~~
      |                                                                     Color
../hiro/core/../gtk/widget/table-view.cpp:128:3: error: 'gtk_widget_modify_base' was not declared in this scope
  128 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::setBatchable(bool)':
../hiro/core/../gtk/widget/table-view.cpp:133:31: error: 'gtkTreeSelection' was not declared in this scope
  133 |   gtk_tree_selection_set_mode(gtkTreeSelection, batchable ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE);
      |                               ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:133:61: error: 'GTK_SELECTION_MULTIPLE' was not declared in this scope
  133 |   gtk_tree_selection_set_mode(gtkTreeSelection, batchable ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE);
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:133:86: error: 'GTK_SELECTION_SINGLE' was not declared in this scope
  133 |   gtk_tree_selection_set_mode(gtkTreeSelection, batchable ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:133:3: error: 'gtk_tree_selection_set_mode' was not declared in this scope
  133 |   gtk_tree_selection_set_mode(gtkTreeSelection, batchable ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::setBordered(bool)':
../hiro/core/../gtk/widget/table-view.cpp:137:32: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
  137 |   gtk_tree_view_set_grid_lines(gtkTreeView, bordered ? GTK_TREE_VIEW_GRID_LINES_BOTH : GTK_TREE_VIEW_GRID_LINES_NONE);
      |                                ^~~~~~~~~~~
      |                                wTreeView
../hiro/core/../gtk/widget/table-view.cpp:137:56: error: 'GTK_TREE_VIEW_GRID_LINES_BOTH' was not declared in this scope
  137 |   gtk_tree_view_set_grid_lines(gtkTreeView, bordered ? GTK_TREE_VIEW_GRID_LINES_BOTH : GTK_TREE_VIEW_GRID_LINES_NONE);
      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:137:88: error: 'GTK_TREE_VIEW_GRID_LINES_NONE' was not declared in this scope
  137 |   gtk_tree_view_set_grid_lines(gtkTreeView, bordered ? GTK_TREE_VIEW_GRID_LINES_BOTH : GTK_TREE_VIEW_GRID_LINES_NONE);
      |                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:137:3: error: 'gtk_tree_view_set_grid_lines' was not declared in this scope
  137 |   gtk_tree_view_set_grid_lines(gtkTreeView, bordered ? GTK_TREE_VIEW_GRID_LINES_BOTH : GTK_TREE_VIEW_GRID_LINES_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'virtual void hiro::pTableView::setFocused()':
../hiro/core/../gtk/widget/table-view.cpp:146:53: error: 'gtkTreeSelection' was not declared in this scope
  146 |     bool selected = gtk_tree_selection_get_selected(gtkTreeSelection, nullptr, nullptr);
      |                                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:146:21: error: 'gtk_tree_selection_get_selected' was not declared in this scope
  146 |     bool selected = gtk_tree_selection_get_selected(gtkTreeSelection, nullptr, nullptr);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:147:27: error: 'gtkWidgetChild' was not declared in this scope
  147 |     gtk_widget_grab_focus(gtkWidgetChild);
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:147:5: error: 'gtk_widget_grab_focus' was not declared in this scope
  147 |     gtk_widget_grab_focus(gtkWidgetChild);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:148:19: error: 'gtk_tree_selection_unselect_all' was not declared in this scope
  148 |     if(!selected) gtk_tree_selection_unselect_all(gtkTreeSelection);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:150:27: error: 'gtkWidgetChild' was not declared in this scope
  150 |     gtk_widget_grab_focus(gtkWidgetChild);
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:150:5: error: 'gtk_widget_grab_focus' was not declared in this scope
  150 |     gtk_widget_grab_focus(gtkWidgetChild);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/table-view.cpp:159:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
  159 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/table-view.cpp:160:26: error: 'gtkWidgetChild' was not declared in this scope
  160 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:160:42: error: 'GTK_STATE_NORMAL' was not declared in this scope
  160 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                          ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:160:69: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
  160 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                     ^~~~~~~~
      |                                                                     Color
../hiro/core/../gtk/widget/table-view.cpp:160:3: error: 'gtk_widget_modify_text' was not declared in this scope
  160 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::setHeadered(bool)':
../hiro/core/../gtk/widget/table-view.cpp:175:37: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
  175 |   gtk_tree_view_set_headers_visible(gtkTreeView, headered);
      |                                     ^~~~~~~~~~~
      |                                     wTreeView
../hiro/core/../gtk/widget/table-view.cpp:175:3: error: 'gtk_tree_view_set_headers_visible' was not declared in this scope
  175 |   gtk_tree_view_set_headers_visible(gtkTreeView, headered);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::setSortable(bool)':
../hiro/core/../gtk/widget/table-view.cpp:180:77: error: 'struct hiro::pTableViewColumn' has no member named 'gtkColumn'
  180 |     if(auto self = column->self()) gtk_tree_view_column_set_clickable(self->gtkColumn, sortable);
      |                                                                             ^~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:180:36: error: 'gtk_tree_view_column_set_clickable' was not declared in this scope
  180 |     if(auto self = column->self()) gtk_tree_view_column_set_clickable(self->gtkColumn, sortable);
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::_createModel()':
../hiro/core/../gtk/widget/table-view.cpp:221:27: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
  221 |   gtk_tree_view_set_model(gtkTreeView, nullptr);
      |                           ^~~~~~~~~~~
      |                           wTreeView
../hiro/core/../gtk/widget/table-view.cpp:221:3: error: 'gtk_tree_view_set_model' was not declared in this scope
  221 |   gtk_tree_view_set_model(gtkTreeView, nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:222:3: error: 'gtkListStore' was not declared in this scope
  222 |   gtkListStore = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:223:3: error: 'gtkTreeModel' was not declared in this scope
  223 |   gtkTreeModel = nullptr;
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:225:10: error: 'GType' was not declared in this scope
  225 |   vector<GType> types;
      |          ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:225:15: error: template argument 1 is invalid
  225 |   vector<GType> types;
      |               ^
../hiro/core/../gtk/widget/table-view.cpp:228:17: error: 'struct hiro::pTableViewColumn' has no member named 'gtkColumn'
  228 |       if(!self->gtkColumn) continue;  //may not have been created yet; or recently destroyed
      |                 ^~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:229:13: error: request for member 'append' in 'types', which is of non-class type 'int'
  229 |       types.append(G_TYPE_BOOLEAN);
      |             ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:229:20: error: 'G_TYPE_BOOLEAN' was not declared in this scope
  229 |       types.append(G_TYPE_BOOLEAN);
      |                    ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:230:13: error: request for member 'append' in 'types', which is of non-class type 'int'
  230 |       types.append(GDK_TYPE_PIXBUF);
      |             ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:230:20: error: 'GDK_TYPE_PIXBUF' was not declared in this scope
  230 |       types.append(GDK_TYPE_PIXBUF);
      |                    ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:231:13: error: request for member 'append' in 'types', which is of non-class type 'int'
  231 |       types.append(G_TYPE_STRING);
      |             ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:231:20: error: 'G_TYPE_STRING' was not declared in this scope
  231 |       types.append(G_TYPE_STRING);
      |                    ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:236:44: error: request for member 'size' in 'types', which is of non-class type 'int'
  236 |   gtkListStore = gtk_list_store_newv(types.size(), types.data());
      |                                            ^~~~
../hiro/core/../gtk/widget/table-view.cpp:236:58: error: request for member 'data' in 'types', which is of non-class type 'int'
  236 |   gtkListStore = gtk_list_store_newv(types.size(), types.data());
      |                                                          ^~~~
../hiro/core/../gtk/widget/table-view.cpp:236:18: error: 'gtk_list_store_newv' was not declared in this scope
  236 |   gtkListStore = gtk_list_store_newv(types.size(), types.data());
      |                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:237:18: error: 'GTK_TREE_MODEL' was not declared in this scope
  237 |   gtkTreeModel = GTK_TREE_MODEL(gtkListStore);
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: At global scope:
../hiro/core/../gtk/widget/table-view.cpp:241:6: error: 'auto hiro::pTableView::_doActivate' is not a static data member of 'struct hiro::pTableView'
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:241:30: error: 'GtkTreePath' was not declared in this scope
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |                              ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:241:43: error: 'gtkRow' was not declared in this scope
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |                                           ^~~~~~
../hiro/core/../gtk/widget/table-view.cpp:241:51: error: 'GtkTreeViewColumn' was not declared in this scope
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |                                                   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:241:70: error: 'gtkColumn' was not declared in this scope
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |                                                                      ^~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:241:79: error: expression list treated as compound expression in initializer [-fpermissive]
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |                                                                               ^
../hiro/core/../gtk/widget/table-view.cpp:241:81: error: expected ',' or ';' before '->' token
  241 | auto pTableView::_doActivate(GtkTreePath* gtkRow, GtkTreeViewColumn* gtkColumn) -> void {
      |                                                                                 ^~
../hiro/core/../gtk/widget/table-view.cpp:271:6: error: 'auto hiro::pTableView::_doDataFunc' is not a static data member of 'struct hiro::pTableView'
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:271:30: error: 'GtkTreeViewColumn' was not declared in this scope
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                              ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:271:49: error: 'gtkColumn' was not declared in this scope
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                 ^~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:271:60: error: 'GtkCellRenderer' was not declared in this scope
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                            ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:271:77: error: 'renderer' was not declared in this scope
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                             ^~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:271:87: error: 'GtkTreeIter' was not declared in this scope
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                       ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:271:100: error: 'iter' was not declared in this scope
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                                    ^~~~
../hiro/core/../gtk/widget/table-view.cpp:271:104: error: expression list treated as compound expression in initializer [-fpermissive]
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                                        ^
../hiro/core/../gtk/widget/table-view.cpp:271:106: error: expected ',' or ';' before '->' token
  271 | auto pTableView::_doDataFunc(GtkTreeViewColumn* gtkColumn, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                                          ^~
../hiro/core/../gtk/widget/table-view.cpp:319:6: error: 'auto hiro::pTableView::_doEdit' is not a static data member of 'struct hiro::pTableView'
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:319:26: error: 'GtkCellRendererText' was not declared in this scope
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |                          ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:319:47: error: 'gtkCellRendererText' was not declared in this scope
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |                                               ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:319:68: error: expected primary-expression before 'const'
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |                                                                    ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:319:86: error: expected primary-expression before 'const'
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |                                                                                      ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:319:102: error: expression list treated as compound expression in initializer [-fpermissive]
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |                                                                                                      ^
../hiro/core/../gtk/widget/table-view.cpp:319:104: error: expected ',' or ';' before '->' token
  319 | auto pTableView::_doEdit(GtkCellRendererText* gtkCellRendererText, const char* path, const char* text) -> void {
      |                                                                                                        ^~
../hiro/core/../gtk/widget/table-view.cpp:338:6: error: 'auto hiro::pTableView::_doEvent' is not a static data member of 'struct hiro::pTableView'
  338 | auto pTableView::_doEvent(GdkEventButton* gdkEvent) -> signed {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:338:27: error: 'GdkEventButton' was not declared in this scope
  338 | auto pTableView::_doEvent(GdkEventButton* gdkEvent) -> signed {
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:338:43: error: 'gdkEvent' was not declared in this scope; did you mean '_doEvent'?
  338 | auto pTableView::_doEvent(GdkEventButton* gdkEvent) -> signed {
      |                                           ^~~~~~~~
      |                                           _doEvent
../hiro/core/../gtk/widget/table-view.cpp:338:53: error: expected ',' or ';' before '->' token
  338 | auto pTableView::_doEvent(GdkEventButton* gdkEvent) -> signed {
      |                                                     ^~
../hiro/core/../gtk/widget/table-view.cpp:377:6: error: 'auto hiro::pTableView::_doHeaderActivate' is not a static data member of 'struct hiro::pTableView'
  377 | auto pTableView::_doHeaderActivate(GtkTreeViewColumn* gtkTreeViewColumn) -> void {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:377:36: error: 'GtkTreeViewColumn' was not declared in this scope
  377 | auto pTableView::_doHeaderActivate(GtkTreeViewColumn* gtkTreeViewColumn) -> void {
      |                                    ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:377:55: error: 'gtkTreeViewColumn' was not declared in this scope
  377 | auto pTableView::_doHeaderActivate(GtkTreeViewColumn* gtkTreeViewColumn) -> void {
      |                                                       ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:377:74: error: expected ',' or ';' before '->' token
  377 | auto pTableView::_doHeaderActivate(GtkTreeViewColumn* gtkTreeViewColumn) -> void {
      |                                                                          ^~
../hiro/core/../gtk/widget/table-view.cpp:388:6: error: 'auto hiro::pTableView::_doKeyPress' is not a static data member of 'struct hiro::pTableView'
  388 | auto pTableView::_doKeyPress(GdkEventKey* event) -> bool {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:388:30: error: 'GdkEventKey' was not declared in this scope
  388 | auto pTableView::_doKeyPress(GdkEventKey* event) -> bool {
      |                              ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:388:43: error: 'event' was not declared in this scope; did you mean 'servent'?
  388 | auto pTableView::_doKeyPress(GdkEventKey* event) -> bool {
      |                                           ^~~~~
      |                                           servent
../hiro/core/../gtk/widget/table-view.cpp:388:50: error: expected ',' or ';' before '->' token
  388 | auto pTableView::_doKeyPress(GdkEventKey* event) -> bool {
      |                                                  ^~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'int hiro::pTableView::_doMouseMove()':
../hiro/core/../gtk/widget/table-view.cpp:413:45: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
  413 |   if(gtk_tree_view_is_rubber_banding_active(gtkTreeView)) {
      |                                             ^~~~~~~~~~~
      |                                             wTreeView
../hiro/core/../gtk/widget/table-view.cpp:413:6: error: 'gtk_tree_view_is_rubber_banding_active' was not declared in this scope
  413 |   if(gtk_tree_view_is_rubber_banding_active(gtkTreeView)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: At global scope:
../hiro/core/../gtk/widget/table-view.cpp:419:6: error: 'auto hiro::pTableView::_doToggle' is not a static data member of 'struct hiro::pTableView'
  419 | auto pTableView::_doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void {
      |      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:419:28: error: 'GtkCellRendererToggle' was not declared in this scope
  419 | auto pTableView::_doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void {
      |                            ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:419:51: error: 'gtkCellRendererToggle' was not declared in this scope
  419 | auto pTableView::_doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void {
      |                                                   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:419:74: error: expected primary-expression before 'const'
  419 | auto pTableView::_doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void {
      |                                                                          ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:419:90: error: expression list treated as compound expression in initializer [-fpermissive]
  419 | auto pTableView::_doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void {
      |                                                                                          ^
../hiro/core/../gtk/widget/table-view.cpp:419:92: error: expected ',' or ';' before '->' token
  419 | auto pTableView::_doToggle(GtkCellRendererToggle* gtkCellRendererToggle, const char* path) -> void {
      |                                                                                            ^~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::_updateRulesHint()':
../hiro/core/../gtk/widget/table-view.cpp:444:32: error: 'gtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
  444 |   gtk_tree_view_set_rules_hint(gtkTreeView, rules);
      |                                ^~~~~~~~~~~
      |                                wTreeView
../hiro/core/../gtk/widget/table-view.cpp:444:3: error: 'gtk_tree_view_set_rules_hint' was not declared in this scope
  444 |   gtk_tree_view_set_rules_hint(gtkTreeView, rules);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp: In member function 'void hiro::pTableView::_updateSelected()':
../hiro/core/../gtk/widget/table-view.cpp:454:37: error: 'gtkTreeSelection' was not declared in this scope
  454 |     gtk_tree_selection_unselect_all(gtkTreeSelection);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:454:5: error: 'gtk_tree_selection_unselect_all' was not declared in this scope
  454 |     gtk_tree_selection_unselect_all(gtkTreeSelection);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:460:3: error: 'GList' was not declared in this scope
  460 |   GList* list = gtk_tree_selection_get_selected_rows(gtkTreeSelection, &gtkTreeModel);
      |   ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:460:10: error: 'list' was not declared in this scope
  460 |   GList* list = gtk_tree_selection_get_selected_rows(gtkTreeSelection, &gtkTreeModel);
      |          ^~~~
../hiro/core/../gtk/widget/table-view.cpp:460:54: error: 'gtkTreeSelection' was not declared in this scope
  460 |   GList* list = gtk_tree_selection_get_selected_rows(gtkTreeSelection, &gtkTreeModel);
      |                                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:460:73: error: 'gtkTreeModel' was not declared in this scope
  460 |   GList* list = gtk_tree_selection_get_selected_rows(gtkTreeSelection, &gtkTreeModel);
      |                                                                         ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:460:17: error: 'gtk_tree_selection_get_selected_rows' was not declared in this scope
  460 |   GList* list = gtk_tree_selection_get_selected_rows(gtkTreeSelection, &gtkTreeModel);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:461:10: error: 'p' was not declared in this scope
  461 |   GList* p = list;
      |          ^
../hiro/core/../gtk/widget/table-view.cpp:464:5: error: 'GtkTreeIter' was not declared in this scope
  464 |     GtkTreeIter iter;
      |     ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:465:47: error: 'iter' was not declared in this scope
  465 |     if(gtk_tree_model_get_iter(gtkTreeModel, &iter, (GtkTreePath*)p->data)) {
      |                                               ^~~~
../hiro/core/../gtk/widget/table-view.cpp:465:54: error: 'GtkTreePath' was not declared in this scope
  465 |     if(gtk_tree_model_get_iter(gtkTreeModel, &iter, (GtkTreePath*)p->data)) {
      |                                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:465:66: error: expected primary-expression before ')' token
  465 |     if(gtk_tree_model_get_iter(gtkTreeModel, &iter, (GtkTreePath*)p->data)) {
      |                                                                  ^
../hiro/core/../gtk/widget/table-view.cpp:465:8: error: 'gtk_tree_model_get_iter' was not declared in this scope
  465 |     if(gtk_tree_model_get_iter(gtkTreeModel, &iter, (GtkTreePath*)p->data)) {
      |        ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:466:24: error: 'gtk_tree_model_get_string_from_iter' was not declared in this scope
  466 |       char* pathname = gtk_tree_model_get_string_from_iter(gtkTreeModel, &iter);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:468:7: error: 'g_free' was not declared in this scope; did you mean 'free'?
  468 |       g_free(pathname);
      |       ^~~~~~
      |       free
../hiro/core/../gtk/widget/table-view.cpp:474:25: error: 'GFunc' was not declared in this scope
  474 |   g_list_foreach(list, (GFunc)gtk_tree_path_free, nullptr);
      |                         ^~~~~
../hiro/core/../gtk/widget/table-view.cpp:474:3: error: 'g_list_foreach' was not declared in this scope
  474 |   g_list_foreach(list, (GFunc)gtk_tree_path_free, nullptr);
      |   ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view.cpp:475:3: error: 'g_list_free' was not declared in this scope
  475 |   g_list_free(list);
      |   ^~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:55:
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'virtual void hiro::pTableViewColumn::construct()':
../hiro/core/../gtk/widget/table-view-column.cpp:13:5: error: 'gtkHeader' was not declared in this scope
   13 |     gtkHeader = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |     ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:13:29: error: 'GTK_ORIENTATION_HORIZONTAL' was not declared in this scope
   13 |     gtkHeader = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:13:17: error: 'gtk_box_new' was not declared in this scope
   13 |     gtkHeader = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
      |                 ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:16:5: error: 'gtkHeaderIcon' was not declared in this scope
   16 |     gtkHeaderIcon = gtk_image_new();
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:16:21: error: 'gtk_image_new' was not declared in this scope
   16 |     gtkHeaderIcon = gtk_image_new();
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:17:24: error: 'GTK_BOX' was not declared in this scope
   17 |     gtk_box_pack_start(GTK_BOX(gtkHeader), gtkHeaderIcon, false, false, 0);
      |                        ^~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:17:5: error: 'gtk_box_pack_start' was not declared in this scope
   17 |     gtk_box_pack_start(GTK_BOX(gtkHeader), gtkHeaderIcon, false, false, 0);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:19:5: error: 'gtkHeaderText' was not declared in this scope
   19 |     gtkHeaderText = gtk_label_new("");
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:19:21: error: 'gtk_label_new' was not declared in this scope
   19 |     gtkHeaderText = gtk_label_new("");
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:22:5: error: 'gtkHeaderSort' was not declared in this scope
   22 |     gtkHeaderSort = gtk_label_new("");
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:25:5: error: 'gtkColumn' was not declared in this scope
   25 |     gtkColumn = gtk_tree_view_column_new();
      |     ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:25:17: error: 'gtk_tree_view_column_new' was not declared in this scope
   25 |     gtkColumn = gtk_tree_view_column_new();
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:26:48: error: 'GTK_TREE_VIEW_COLUMN_FIXED' was not declared in this scope
   26 |     gtk_tree_view_column_set_sizing(gtkColumn, GTK_TREE_VIEW_COLUMN_FIXED);
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:26:5: error: 'gtk_tree_view_column_set_sizing' was not declared in this scope
   26 |     gtk_tree_view_column_set_sizing(gtkColumn, GTK_TREE_VIEW_COLUMN_FIXED);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:27:5: error: 'gtk_tree_view_column_set_title' was not declared in this scope
   27 |     gtk_tree_view_column_set_title(gtkColumn, "");
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:28:5: error: 'gtk_tree_view_column_set_widget' was not declared in this scope
   28 |     gtk_tree_view_column_set_widget(gtkColumn, gtkHeader);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:30:5: error: 'gtkCellToggle' was not declared in this scope
   30 |     gtkCellToggle = gtk_cell_renderer_toggle_new();
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:30:21: error: 'gtk_cell_renderer_toggle_new' was not declared in this scope
   30 |     gtkCellToggle = gtk_cell_renderer_toggle_new();
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:31:5: error: 'gtk_tree_view_column_pack_start' was not declared in this scope
   31 |     gtk_tree_view_column_pack_start(gtkColumn, gtkCellToggle, false);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:32:5: error: 'gtk_tree_view_column_set_attributes' was not declared in this scope
   32 |     gtk_tree_view_column_set_attributes(gtkColumn, gtkCellToggle, "active", 3 * offset + 0, nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:33:56: error: 'GTK_CELL_RENDERER' was not declared in this scope
   33 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                                        ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:33:91: error: 'GtkTreeCellDataFunc' was not declared in this scope
   33 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                                                                           ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:33:132: error: 'gpointer' was not declared in this scope
   33 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                                                                                                                    ^~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:33:5: error: 'gtk_tree_view_column_set_cell_data_func' was not declared in this scope
   33 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:35:5: error: 'gtkCellIcon' was not declared in this scope
   35 |     gtkCellIcon = gtk_cell_renderer_pixbuf_new();
      |     ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:35:19: error: 'gtk_cell_renderer_pixbuf_new' was not declared in this scope
   35 |     gtkCellIcon = gtk_cell_renderer_pixbuf_new();
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:38:109: error: expected ')' before 'TableView_dataFunc'
   38 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellIcon), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                            ~                                                                ^~~~~~~~~~~~~~~~~~
      |                                                                                                             )
../hiro/core/../gtk/widget/table-view-column.cpp:38:139: error: expected ')' before 'handle'
   38 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellIcon), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                            ~                                                                                              ^~~~~~
      |                                                                                                                                           )
../hiro/core/../gtk/widget/table-view-column.cpp:40:5: error: 'gtkCellText' was not declared in this scope
   40 |     gtkCellText = gtk_cell_renderer_text_new();
      |     ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:40:19: error: 'gtk_cell_renderer_text_new' was not declared in this scope
   40 |     gtkCellText = gtk_cell_renderer_text_new();
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:43:109: error: expected ')' before 'TableView_dataFunc'
   43 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellText), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                            ~                                                                ^~~~~~~~~~~~~~~~~~
      |                                                                                                             )
../hiro/core/../gtk/widget/table-view-column.cpp:43:139: error: expected ')' before 'handle'
   43 |     gtk_tree_view_column_set_cell_data_func(gtkColumn, GTK_CELL_RENDERER(gtkCellText), (GtkTreeCellDataFunc)TableView_dataFunc, (gpointer)handle, nullptr);
      |                                            ~                                                                                              ^~~~~~
      |                                                                                                                                           )
../hiro/core/../gtk/widget/table-view-column.cpp:45:22: error: 'G_OBJECT' was not declared in this scope
   45 |     g_signal_connect(G_OBJECT(gtkColumn), "clicked", G_CALLBACK(TableView_headerActivate), (gpointer)handle);
      |                      ^~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:45:54: error: 'G_CALLBACK' was not declared in this scope
   45 |     g_signal_connect(G_OBJECT(gtkColumn), "clicked", G_CALLBACK(TableView_headerActivate), (gpointer)handle);
      |                                                      ^~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:45:102: error: expected ')' before 'handle'
   45 |     g_signal_connect(G_OBJECT(gtkColumn), "clicked", G_CALLBACK(TableView_headerActivate), (gpointer)handle);
      |                     ~                                                                                ^~~~~~
      |                                                                                                      )
../hiro/core/../gtk/widget/table-view-column.cpp:45:5: error: 'g_signal_connect' was not declared in this scope
   45 |     g_signal_connect(G_OBJECT(gtkColumn), "clicked", G_CALLBACK(TableView_headerActivate), (gpointer)handle);
      |     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:46:93: error: expected ')' before 'handle'
   46 |     g_signal_connect(G_OBJECT(gtkCellText), "edited", G_CALLBACK(TableView_edit), (gpointer)handle);
      |                     ~                                                                       ^~~~~~
      |                                                                                             )
../hiro/core/../gtk/widget/table-view-column.cpp:47:98: error: expected ')' before 'handle'
   47 |     g_signal_connect(G_OBJECT(gtkCellToggle), "toggled", G_CALLBACK(TableView_toggle), (gpointer)handle);
      |                     ~                                                                            ^~~~~~
      |                                                                                                  )
../hiro/core/../gtk/widget/table-view-column.cpp:49:41: error: 'struct hiro::pTableView' has no member named 'gtkTreeView'
   49 |     gtk_tree_view_append_column(parent->gtkTreeView, gtkColumn);
      |                                         ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:49:5: error: 'gtk_tree_view_append_column' was not declared in this scope
   49 |     gtk_tree_view_append_column(parent->gtkTreeView, gtkColumn);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:50:5: error: 'gtk_widget_show_all' was not declared in this scope
   50 |     gtk_widget_show_all(gtkHeader);
      |     ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:53:5: error: 'gtk_tree_view_column_set_clickable' was not declared in this scope
   53 |     gtk_tree_view_column_set_clickable(gtkColumn, parent->state().sortable);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'virtual void hiro::pTableViewColumn::destruct()':
../hiro/core/../gtk/widget/table-view-column.cpp:67:41: error: 'struct hiro::pTableView' has no member named 'gtkTreeView'
   67 |     gtk_tree_view_remove_column(parent->gtkTreeView, gtkColumn);
      |                                         ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:67:54: error: 'gtkColumn' was not declared in this scope
   67 |     gtk_tree_view_remove_column(parent->gtkTreeView, gtkColumn);
      |                                                      ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:67:5: error: 'gtk_tree_view_remove_column' was not declared in this scope
   67 |     gtk_tree_view_remove_column(parent->gtkTreeView, gtkColumn);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'void hiro::pTableViewColumn::setActive()':
../hiro/core/../gtk/widget/table-view-column.cpp:75:45: error: 'struct hiro::pTableView' has no member named 'gtkTreeView'
   75 |     gtk_tree_view_set_search_column(parent->gtkTreeView, 3 * self().offset() + 2);
      |                                             ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:75:5: error: 'gtk_tree_view_set_search_column' was not declared in this scope
   75 |     gtk_tree_view_set_search_column(parent->gtkTreeView, 3 * self().offset() + 2);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'void hiro::pTableViewColumn::setEditable(bool)':
../hiro/core/../gtk/widget/table-view-column.cpp:86:25: error: 'gtkCellText' was not declared in this scope
   86 |   g_object_set(G_OBJECT(gtkCellText), "editable", editable ? true : false, nullptr);
      |                         ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:86:16: error: 'G_OBJECT' was not declared in this scope
   86 |   g_object_set(G_OBJECT(gtkCellText), "editable", editable ? true : false, nullptr);
      |                ^~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:86:3: error: 'g_object_set' was not declared in this scope
   86 |   g_object_set(G_OBJECT(gtkCellText), "editable", editable ? true : false, nullptr);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'void hiro::pTableViewColumn::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/table-view-column.cpp:103:41: error: 'gtkHeaderIcon' was not declared in this scope
  103 |     gtk_image_set_from_pixbuf(GTK_IMAGE(gtkHeaderIcon), CreatePixbuf(icon));
      |                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:103:31: error: 'GTK_IMAGE' was not declared in this scope
  103 |     gtk_image_set_from_pixbuf(GTK_IMAGE(gtkHeaderIcon), CreatePixbuf(icon));
      |                               ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:103:57: error: 'CreatePixbuf' was not declared in this scope
  103 |     gtk_image_set_from_pixbuf(GTK_IMAGE(gtkHeaderIcon), CreatePixbuf(icon));
      |                                                         ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:103:5: error: 'gtk_image_set_from_pixbuf' was not declared in this scope
  103 |     gtk_image_set_from_pixbuf(GTK_IMAGE(gtkHeaderIcon), CreatePixbuf(icon));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:105:31: error: 'gtkHeaderIcon' was not declared in this scope
  105 |     gtk_image_clear(GTK_IMAGE(gtkHeaderIcon));
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:105:21: error: 'GTK_IMAGE' was not declared in this scope
  105 |     gtk_image_clear(GTK_IMAGE(gtkHeaderIcon));
      |                     ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:105:5: error: 'gtk_image_clear' was not declared in this scope
  105 |     gtk_image_clear(GTK_IMAGE(gtkHeaderIcon));
      |     ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'void hiro::pTableViewColumn::setResizable(bool)':
../hiro/core/../gtk/widget/table-view-column.cpp:110:38: error: 'gtkColumn' was not declared in this scope
  110 |   gtk_tree_view_column_set_resizable(gtkColumn, resizable);
      |                                      ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:110:3: error: 'gtk_tree_view_column_set_resizable' was not declared in this scope
  110 |   gtk_tree_view_column_set_resizable(gtkColumn, resizable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'void hiro::pTableViewColumn::setSorting(hiro::Sort)':
../hiro/core/../gtk/widget/table-view-column.cpp:117:32: error: 'gtkHeaderSort' was not declared in this scope
  117 |   gtk_label_set_text(GTK_LABEL(gtkHeaderSort), text);
      |                                ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:117:22: error: 'GTK_LABEL' was not declared in this scope
  117 |   gtk_label_set_text(GTK_LABEL(gtkHeaderSort), text);
      |                      ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:117:3: error: 'gtk_label_set_text' was not declared in this scope
  117 |   gtk_label_set_text(GTK_LABEL(gtkHeaderSort), text);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'void hiro::pTableViewColumn::setText(const nall::string&)':
../hiro/core/../gtk/widget/table-view-column.cpp:121:32: error: 'gtkHeaderText' was not declared in this scope
  121 |   gtk_label_set_text(GTK_LABEL(gtkHeaderText), text);
      |                                ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:121:22: error: 'GTK_LABEL' was not declared in this scope
  121 |   gtk_label_set_text(GTK_LABEL(gtkHeaderText), text);
      |                      ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:121:3: error: 'gtk_label_set_text' was not declared in this scope
  121 |   gtk_label_set_text(GTK_LABEL(gtkHeaderText), text);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp: In member function 'virtual void hiro::pTableViewColumn::setVisible(bool)':
../hiro/core/../gtk/widget/table-view-column.cpp:125:36: error: 'gtkColumn' was not declared in this scope
  125 |   gtk_tree_view_column_set_visible(gtkColumn, visible);
      |                                    ^~~~~~~~~
../hiro/core/../gtk/widget/table-view-column.cpp:125:3: error: 'gtk_tree_view_column_set_visible' was not declared in this scope
  125 |   gtk_tree_view_column_set_visible(gtkColumn, visible);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:56:
../hiro/core/../gtk/widget/table-view-item.cpp: In member function 'virtual void hiro::pTableViewItem::construct()':
../hiro/core/../gtk/widget/table-view-item.cpp:8:35: error: 'struct hiro::pTableView' has no member named 'gtkListStore'
    8 |     gtk_list_store_append(parent->gtkListStore, &gtkIter);
      |                                   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:8:50: error: 'gtkIter' was not declared in this scope
    8 |     gtk_list_store_append(parent->gtkListStore, &gtkIter);
      |                                                  ^~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:8:5: error: 'gtk_list_store_append' was not declared in this scope
    8 |     gtk_list_store_append(parent->gtkListStore, &gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp: In member function 'virtual void hiro::pTableViewItem::destruct()':
../hiro/core/../gtk/widget/table-view-item.cpp:16:35: error: 'struct hiro::pTableView' has no member named 'gtkListStore'
   16 |     gtk_list_store_remove(parent->gtkListStore, &gtkIter);
      |                                   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:16:50: error: 'gtkIter' was not declared in this scope
   16 |     gtk_list_store_remove(parent->gtkListStore, &gtkIter);
      |                                                  ^~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:16:5: error: 'gtk_list_store_remove' was not declared in this scope
   16 |     gtk_list_store_remove(parent->gtkListStore, &gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp: In member function 'virtual void hiro::pTableViewItem::setFocused()':
../hiro/core/../gtk/widget/table-view-item.cpp:39:5: error: 'GtkTreePath' was not declared in this scope
   39 |     GtkTreePath* path = gtk_tree_path_new_from_string(string{self().offset()});
      |     ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:39:18: error: 'path' was not declared in this scope; did you mean 'nall::Location::path'?
   39 |     GtkTreePath* path = gtk_tree_path_new_from_string(string{self().offset()});
      |                  ^~~~
      |                  nall::Location::path
../nall/location.hpp:9:13: note: 'nall::Location::path' declared here
    9 | inline auto path(string_view self) -> string {
      |             ^~~~
../hiro/core/../gtk/widget/table-view-item.cpp:39:25: error: 'gtk_tree_path_new_from_string' was not declared in this scope
   39 |     GtkTreePath* path = gtk_tree_path_new_from_string(string{self().offset()});
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:40:38: error: 'struct hiro::pTableView' has no member named 'gtkTreeView'
   40 |     gtk_tree_view_set_cursor(parent->gtkTreeView, path, nullptr, false);
      |                                      ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:40:5: error: 'gtk_tree_view_set_cursor' was not declared in this scope
   40 |     gtk_tree_view_set_cursor(parent->gtkTreeView, path, nullptr, false);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:41:42: error: 'struct hiro::pTableView' has no member named 'gtkTreeView'
   41 |     gtk_tree_view_scroll_to_cell(parent->gtkTreeView, path, nullptr, true, 0.5, 0.0);
      |                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:41:5: error: 'gtk_tree_view_scroll_to_cell' was not declared in this scope
   41 |     gtk_tree_view_scroll_to_cell(parent->gtkTreeView, path, nullptr, true, 0.5, 0.0);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:42:5: error: 'gtk_tree_path_free' was not declared in this scope
   42 |     gtk_tree_path_free(path);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp: In member function 'void hiro::pTableViewItem::_setState()':
../hiro/core/../gtk/widget/table-view-item.cpp:64:46: error: 'struct hiro::pTableView' has no member named 'gtkTreeSelection'
   64 |       gtk_tree_selection_select_iter(parent->gtkTreeSelection, &gtkIter);
      |                                              ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:64:65: error: 'gtkIter' was not declared in this scope
   64 |       gtk_tree_selection_select_iter(parent->gtkTreeSelection, &gtkIter);
      |                                                                 ^~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:64:7: error: 'gtk_tree_selection_select_iter' was not declared in this scope
   64 |       gtk_tree_selection_select_iter(parent->gtkTreeSelection, &gtkIter);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:66:48: error: 'struct hiro::pTableView' has no member named 'gtkTreeSelection'
   66 |       gtk_tree_selection_unselect_iter(parent->gtkTreeSelection, &gtkIter);
      |                                                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:66:67: error: 'gtkIter' was not declared in this scope
   66 |       gtk_tree_selection_unselect_iter(parent->gtkTreeSelection, &gtkIter);
      |                                                                   ^~~~~~~
../hiro/core/../gtk/widget/table-view-item.cpp:66:7: error: 'gtk_tree_selection_unselect_iter' was not declared in this scope
   66 |       gtk_tree_selection_unselect_iter(parent->gtkTreeSelection, &gtkIter);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:57:
../hiro/core/../gtk/widget/table-view-cell.cpp: In member function 'void hiro::pTableViewCell::_setState()':
../hiro/core/../gtk/widget/table-view-cell.cpp:53:41: error: 'struct hiro::pTableView' has no member named 'gtkListStore'
   53 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 0, state().checked, -1);
      |                                         ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:53:64: error: 'struct hiro::pTableViewItem' has no member named 'gtkIter'
   53 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 0, state().checked, -1);
      |                                                                ^~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:53:9: error: 'gtk_list_store_set' was not declared in this scope
   53 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 0, state().checked, -1);
      |         ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:54:41: error: 'struct hiro::pTableView' has no member named 'gtkListStore'
   54 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 1, CreatePixbuf(state().icon), -1);
      |                                         ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:54:64: error: 'struct hiro::pTableViewItem' has no member named 'gtkIter'
   54 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 1, CreatePixbuf(state().icon), -1);
      |                                                                ^~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:54:98: error: 'CreatePixbuf' was not declared in this scope
   54 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 1, CreatePixbuf(state().icon), -1);
      |                                                                                                  ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:55:41: error: 'struct hiro::pTableView' has no member named 'gtkListStore'
   55 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 2, state().text.data(), -1);
      |                                         ^~~~~~~~~~~~
../hiro/core/../gtk/widget/table-view-cell.cpp:55:64: error: 'struct hiro::pTableViewItem' has no member named 'gtkIter'
   55 |         gtk_list_store_set(grandparent->gtkListStore, &parent->gtkIter, 3 * self().offset() + 2, state().text.data(), -1);
      |                                                                ^~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:58:
../hiro/core/../gtk/widget/text-edit.cpp: At global scope:
../hiro/core/../gtk/widget/text-edit.cpp:5:29: error: 'GtkTextBuffer' was not declared in this scope
    5 | static auto TextEdit_change(GtkTextBuffer* textBuffer, pTextEdit* p) -> void {
      |                             ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:5:44: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
    5 | static auto TextEdit_change(GtkTextBuffer* textBuffer, pTextEdit* p) -> void {
      |                                            ^~~~~~~~~~
      |                                            setbuffer
../hiro/core/../gtk/widget/text-edit.cpp:5:65: error: expected primary-expression before '*' token
    5 | static auto TextEdit_change(GtkTextBuffer* textBuffer, pTextEdit* p) -> void {
      |                                                                 ^
../hiro/core/../gtk/widget/text-edit.cpp:5:67: error: 'p' was not declared in this scope
    5 | static auto TextEdit_change(GtkTextBuffer* textBuffer, pTextEdit* p) -> void {
      |                                                                   ^
../hiro/core/../gtk/widget/text-edit.cpp:5:68: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto TextEdit_change(GtkTextBuffer* textBuffer, pTextEdit* p) -> void {
      |                                                                    ^
../hiro/core/../gtk/widget/text-edit.cpp:5:70: error: expected ',' or ';' before '->' token
    5 | static auto TextEdit_change(GtkTextBuffer* textBuffer, pTextEdit* p) -> void {
      |                                                                      ^~
../hiro/core/../gtk/widget/text-edit.cpp:9:27: error: 'GObject' was not declared in this scope; did you mean 'wObject'?
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                           ^~~~~~~
      |                           wObject
../hiro/core/../gtk/widget/text-edit.cpp:9:36: error: 'object' was not declared in this scope; did you mean 'Object'?
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                    ^~~~~~
      |                                    Object
../hiro/core/../gtk/widget/text-edit.cpp:9:44: error: 'GParamSpec' was not declared in this scope
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                            ^~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:9:56: error: 'spec' was not declared in this scope
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                                        ^~~~
../hiro/core/../gtk/widget/text-edit.cpp:9:71: error: expected primary-expression before '*' token
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                                                       ^
../hiro/core/../gtk/widget/text-edit.cpp:9:73: error: 'p' was not declared in this scope
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                                                         ^
../hiro/core/../gtk/widget/text-edit.cpp:9:74: error: expression list treated as compound expression in initializer [-fpermissive]
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                                                          ^
../hiro/core/../gtk/widget/text-edit.cpp:9:76: error: expected ',' or ';' before '->' token
    9 | static auto TextEdit_move(GObject* object, GParamSpec* spec, pTextEdit* p) -> void {
      |                                                                            ^~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'virtual void hiro::pTextEdit::construct()':
../hiro/core/../gtk/widget/text-edit.cpp:15:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   15 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/text-edit.cpp:15:15: error: 'gtk_scrolled_window_new' was not declared in this scope
   15 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:16:34: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   16 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:16:66: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   16 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                                                  ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:16:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   16 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:17:71: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   17 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(gtkWidget), GTK_SHADOW_ETCHED_IN);
      |                                                                       ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:17:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   17 |   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(gtkWidget), GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:19:3: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   19 |   subWidget = gtk_text_view_new();
      |   ^~~~~~~~~
      |   sWidget
../hiro/core/../gtk/widget/text-edit.cpp:19:15: error: 'gtk_text_view_new' was not declared in this scope
   19 |   subWidget = gtk_text_view_new();
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:20:3: error: 'gtk_widget_show' was not declared in this scope
   20 |   gtk_widget_show(subWidget);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:21:31: error: 'GTK_TEXT_VIEW' was not declared in this scope
   21 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_WORD_CHAR);
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:21:57: error: 'GTK_WRAP_WORD_CHAR' was not declared in this scope
   21 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_WORD_CHAR);
      |                                                         ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:21:3: error: 'gtk_text_view_set_wrap_mode' was not declared in this scope
   21 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), GTK_WRAP_WORD_CHAR);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:22:21: error: 'GTK_CONTAINER' was not declared in this scope
   22 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:22:3: error: 'gtk_container_add' was not declared in this scope
   22 |   gtk_container_add(GTK_CONTAINER(gtkWidget), subWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:24:3: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   24 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |   ^~~~~~~~~~
      |   setbuffer
../hiro/core/../gtk/widget/text-edit.cpp:24:16: error: 'gtk_text_view_get_buffer' was not declared in this scope
   24 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:33:20: error: 'G_OBJECT' was not declared in this scope
   33 |   g_signal_connect(G_OBJECT(textBuffer), "changed", G_CALLBACK(TextEdit_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:33:53: error: 'G_CALLBACK' was not declared in this scope
   33 |   g_signal_connect(G_OBJECT(textBuffer), "changed", G_CALLBACK(TextEdit_change), (gpointer)this);
      |                                                     ^~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:33:83: error: 'gpointer' was not declared in this scope
   33 |   g_signal_connect(G_OBJECT(textBuffer), "changed", G_CALLBACK(TextEdit_change), (gpointer)this);
      |                                                                                   ^~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:33:3: error: 'g_signal_connect' was not declared in this scope
   33 |   g_signal_connect(G_OBJECT(textBuffer), "changed", G_CALLBACK(TextEdit_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:34:106: error: expected ')' before 'this'
   34 |   g_signal_connect(G_OBJECT(textBuffer), "notify::cursor-position", G_CALLBACK(TextEdit_move), (gpointer)this);
      |                   ~                                                                                      ^~~~
      |                                                                                                          )
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'virtual void hiro::pTextEdit::destruct()':
../hiro/core/../gtk/widget/text-edit.cpp:41:22: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   41 |   gtk_widget_destroy(subWidget);
      |                      ^~~~~~~~~
      |                      sWidget
../hiro/core/../gtk/widget/text-edit.cpp:41:3: error: 'gtk_widget_destroy' was not declared in this scope
   41 |   gtk_widget_destroy(subWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:42:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   42 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'virtual bool hiro::pTextEdit::focused() const':
../hiro/core/../gtk/widget/text-edit.cpp:46:31: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   46 |   return gtk_widget_has_focus(subWidget);
      |                               ^~~~~~~~~
      |                               sWidget
../hiro/core/../gtk/widget/text-edit.cpp:46:10: error: 'gtk_widget_has_focus' was not declared in this scope
   46 |   return gtk_widget_has_focus(subWidget);
      |          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'void hiro::pTextEdit::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/text-edit.cpp:50:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   50 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/text-edit.cpp:51:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/text-edit.cpp:51:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:51:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/text-edit.cpp:51:3: error: 'gtk_widget_modify_base' was not declared in this scope
   51 |   gtk_widget_modify_base(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'void hiro::pTextEdit::setEditable(bool)':
../hiro/core/../gtk/widget/text-edit.cpp:55:44: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   55 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), editable);
      |                                            ^~~~~~~~~
      |                                            sWidget
../hiro/core/../gtk/widget/text-edit.cpp:55:30: error: 'GTK_TEXT_VIEW' was not declared in this scope
   55 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), editable);
      |                              ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:55:3: error: 'gtk_text_view_set_editable' was not declared in this scope
   55 |   gtk_text_view_set_editable(GTK_TEXT_VIEW(subWidget), editable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'virtual void hiro::pTextEdit::setFocused()':
../hiro/core/../gtk/widget/text-edit.cpp:59:25: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   59 |   gtk_widget_grab_focus(subWidget);
      |                         ^~~~~~~~~
      |                         sWidget
../hiro/core/../gtk/widget/text-edit.cpp:59:3: error: 'gtk_widget_grab_focus' was not declared in this scope
   59 |   gtk_widget_grab_focus(subWidget);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'void hiro::pTextEdit::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/text-edit.cpp:63:3: error: 'GdkColor' was not declared in this scope; did you mean 'Color'?
   63 |   GdkColor gdkColor = CreateColor(color);
      |   ^~~~~~~~
      |   Color
../hiro/core/../gtk/widget/text-edit.cpp:64:26: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   64 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~
      |                          sWidget
../hiro/core/../gtk/widget/text-edit.cpp:64:37: error: 'GTK_STATE_NORMAL' was not declared in this scope
   64 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:64:64: error: 'gdkColor' was not declared in this scope; did you mean 'Color'?
   64 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                                                ^~~~~~~~
      |                                                                Color
../hiro/core/../gtk/widget/text-edit.cpp:64:3: error: 'gtk_widget_modify_text' was not declared in this scope
   64 |   gtk_widget_modify_text(subWidget, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'void hiro::pTextEdit::setText(const nall::string&)':
../hiro/core/../gtk/widget/text-edit.cpp:69:3: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   69 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |   ^~~~~~~~~~
      |   setbuffer
../hiro/core/../gtk/widget/text-edit.cpp:69:55: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   69 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |                                                       ^~~~~~~~~
      |                                                       sWidget
../hiro/core/../gtk/widget/text-edit.cpp:69:41: error: 'GTK_TEXT_VIEW' was not declared in this scope
   69 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:69:16: error: 'gtk_text_view_get_buffer' was not declared in this scope
   69 |   textBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(subWidget));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:70:3: error: 'gtk_text_buffer_set_text' was not declared in this scope
   70 |   gtk_text_buffer_set_text(textBuffer, text, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'void hiro::pTextEdit::setTextCursor(hiro::TextCursor)':
../hiro/core/../gtk/widget/text-edit.cpp:76:3: error: 'GtkTextIter' was not declared in this scope
   76 |   GtkTextIter offset, length;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:77:32: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   77 |   gtk_text_buffer_get_end_iter(textBuffer, &offset);
      |                                ^~~~~~~~~~
      |                                setbuffer
../hiro/core/../gtk/widget/text-edit.cpp:77:45: error: 'offset' was not declared in this scope; did you mean 'offset_t'?
   77 |   gtk_text_buffer_get_end_iter(textBuffer, &offset);
      |                                             ^~~~~~
      |                                             offset_t
../hiro/core/../gtk/widget/text-edit.cpp:77:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
   77 |   gtk_text_buffer_get_end_iter(textBuffer, &offset);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:78:45: error: 'length' was not declared in this scope; did you mean 'len_t'?
   78 |   gtk_text_buffer_get_end_iter(textBuffer, &length);
      |                                             ^~~~~~
      |                                             len_t
../hiro/core/../gtk/widget/text-edit.cpp:79:16: error: 'gtk_text_iter_get_offset' was not declared in this scope
   79 |   signed end = gtk_text_iter_get_offset(&offset);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:80:3: error: 'gtk_text_iter_set_offset' was not declared in this scope
   80 |   gtk_text_iter_set_offset(&offset, max(0, min(end, cursor.offset())));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:82:3: error: 'gtk_text_buffer_select_range' was not declared in this scope
   82 |   gtk_text_buffer_select_range(textBuffer, &offset, &length);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:83:15: error: 'gtk_text_buffer_get_mark' was not declared in this scope
   83 |   auto mark = gtk_text_buffer_get_mark(textBuffer, "insert");
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:84:52: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   84 |   gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(subWidget), mark);
      |                                                    ^~~~~~~~~
      |                                                    sWidget
../hiro/core/../gtk/widget/text-edit.cpp:84:38: error: 'GTK_TEXT_VIEW' was not declared in this scope
   84 |   gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(subWidget), mark);
      |                                      ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:84:3: error: 'gtk_text_view_scroll_mark_onscreen' was not declared in this scope
   84 |   gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(subWidget), mark);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'void hiro::pTextEdit::setWordWrap(bool)':
../hiro/core/../gtk/widget/text-edit.cpp:89:45: error: 'subWidget' was not declared in this scope; did you mean 'sWidget'?
   89 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                                             ^~~~~~~~~
      |                                             sWidget
../hiro/core/../gtk/widget/text-edit.cpp:89:31: error: 'GTK_TEXT_VIEW' was not declared in this scope
   89 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                               ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:89:68: error: 'GTK_WRAP_WORD_CHAR' was not declared in this scope
   89 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                                                                    ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:89:89: error: 'GTK_WRAP_NONE' was not declared in this scope
   89 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |                                                                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:89:3: error: 'gtk_text_view_set_wrap_mode' was not declared in this scope
   89 |   gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(subWidget), wordWrap ? GTK_WRAP_WORD_CHAR : GTK_WRAP_NONE);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:90:54: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   90 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget),
      |                                                      ^~~~~~~~~
      |                                                      pWidget
../hiro/core/../gtk/widget/text-edit.cpp:90:34: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   90 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget),
      |                                  ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:91:16: error: 'GTK_POLICY_NEVER' was not declared in this scope
   91 |     wordWrap ? GTK_POLICY_NEVER : GTK_POLICY_ALWAYS,
      |                ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:91:35: error: 'GTK_POLICY_ALWAYS' was not declared in this scope
   91 |     wordWrap ? GTK_POLICY_NEVER : GTK_POLICY_ALWAYS,
      |                                   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:90:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   90 |   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtkWidget),
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'nall::string hiro::pTextEdit::text() const':
../hiro/core/../gtk/widget/text-edit.cpp:96:3: error: 'GtkTextIter' was not declared in this scope
   96 |   GtkTextIter start, end;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:97:34: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
   97 |   gtk_text_buffer_get_start_iter(textBuffer, &start);
      |                                  ^~~~~~~~~~
      |                                  setbuffer
../hiro/core/../gtk/widget/text-edit.cpp:97:47: error: 'start' was not declared in this scope; did you mean 'stat'?
   97 |   gtk_text_buffer_get_start_iter(textBuffer, &start);
      |                                               ^~~~~
      |                                               stat
../hiro/core/../gtk/widget/text-edit.cpp:97:3: error: 'gtk_text_buffer_get_start_iter' was not declared in this scope
   97 |   gtk_text_buffer_get_start_iter(textBuffer, &start);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:98:45: error: 'end' was not declared in this scope; did you mean 'std::end'?
   98 |   gtk_text_buffer_get_end_iter(textBuffer, &end);
      |                                             ^~~
      |                                             std::end
/opt/tools/gcc13/include/c++/13.2.0/initializer_list:99:5: note: 'std::end' declared here
   99 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
../hiro/core/../gtk/widget/text-edit.cpp:98:3: error: 'gtk_text_buffer_get_end_iter' was not declared in this scope
   98 |   gtk_text_buffer_get_end_iter(textBuffer, &end);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:99:16: error: 'gtk_text_buffer_get_text' was not declared in this scope
   99 |   char* temp = gtk_text_buffer_get_text(textBuffer, &start, &end, true);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:101:3: error: 'g_free' was not declared in this scope; did you mean 'free'?
  101 |   g_free(temp);
      |   ^~~~~~
      |   free
../hiro/core/../gtk/widget/text-edit.cpp: In member function 'hiro::TextCursor hiro::pTextEdit::textCursor() const':
../hiro/core/../gtk/widget/text-edit.cpp:108:25: error: 'textBuffer' was not declared in this scope; did you mean 'setbuffer'?
  108 |   g_object_get(G_OBJECT(textBuffer), "cursor-position", &offset, nullptr);
      |                         ^~~~~~~~~~
      |                         setbuffer
../hiro/core/../gtk/widget/text-edit.cpp:108:16: error: 'G_OBJECT' was not declared in this scope
  108 |   g_object_get(G_OBJECT(textBuffer), "cursor-position", &offset, nullptr);
      |                ^~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:108:3: error: 'g_object_get' was not declared in this scope
  108 |   g_object_get(G_OBJECT(textBuffer), "cursor-position", &offset, nullptr);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:110:3: error: 'GtkTextIter' was not declared in this scope
  110 |   GtkTextIter start, end;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:111:56: error: 'start' was not declared in this scope; did you mean 'stat'?
  111 |   if(gtk_text_buffer_get_selection_bounds(textBuffer, &start, &end)) {
      |                                                        ^~~~~
      |                                                        stat
../hiro/core/../gtk/widget/text-edit.cpp:111:64: error: 'end' was not declared in this scope; did you mean 'std::end'?
  111 |   if(gtk_text_buffer_get_selection_bounds(textBuffer, &start, &end)) {
      |                                                                ^~~
      |                                                                std::end
/opt/tools/gcc13/include/c++/13.2.0/initializer_list:99:5: note: 'std::end' declared here
   99 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
../hiro/core/../gtk/widget/text-edit.cpp:111:6: error: 'gtk_text_buffer_get_selection_bounds' was not declared in this scope
  111 |   if(gtk_text_buffer_get_selection_bounds(textBuffer, &start, &end)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/text-edit.cpp:114:18: error: 'gtk_text_iter_get_offset' was not declared in this scope
  114 |     int origin = gtk_text_iter_get_offset(&start);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:59:
../hiro/core/../gtk/widget/tree-view.cpp: At global scope:
../hiro/core/../gtk/widget/tree-view.cpp:10:31: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                               ^~~~~~~~~~~
      |                               wTreeView
../hiro/core/../gtk/widget/tree-view.cpp:10:43: error: expected primary-expression before ',' token
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                           ^
../hiro/core/../gtk/widget/tree-view.cpp:10:45: error: 'GtkTreePath' was not declared in this scope
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                             ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:10:58: error: 'gtkPath' was not declared in this scope
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                          ^~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:10:67: error: 'GtkTreeViewColumn' was not declared in this scope
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                                   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:10:85: error: expected primary-expression before ',' token
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                                                     ^
../hiro/core/../gtk/widget/tree-view.cpp:10:96: error: expected primary-expression before '*' token
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                                                                ^
../hiro/core/../gtk/widget/tree-view.cpp:10:98: error: 'p' was not declared in this scope
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                                                                  ^
../hiro/core/../gtk/widget/tree-view.cpp:10:99: error: expression list treated as compound expression in initializer [-fpermissive]
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                                                                   ^
../hiro/core/../gtk/widget/tree-view.cpp:10:101: error: expected ',' or ';' before '->' token
   10 | static auto TreeView_activate(GtkTreeView*, GtkTreePath* gtkPath, GtkTreeViewColumn*, pTreeView* p) -> void { p->_activatePath(gtkPath); }
      |                                                                                                     ^~
../hiro/core/../gtk/widget/tree-view.cpp:11:34: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                  ^~~~~~~~~~~
      |                                  wTreeView
../hiro/core/../gtk/widget/tree-view.cpp:11:46: error: expected primary-expression before ',' token
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                              ^
../hiro/core/../gtk/widget/tree-view.cpp:11:48: error: 'GdkEventButton' was not declared in this scope
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                                ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:11:64: error: 'gdkEvent' was not declared in this scope
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                                                ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:11:83: error: expected primary-expression before '*' token
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                                                                   ^
../hiro/core/../gtk/widget/tree-view.cpp:11:85: error: 'p' was not declared in this scope
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                                                                     ^
../hiro/core/../gtk/widget/tree-view.cpp:11:86: error: expression list treated as compound expression in initializer [-fpermissive]
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                                                                      ^
../hiro/core/../gtk/widget/tree-view.cpp:11:88: error: expected ',' or ';' before '->' token
   11 | static auto TreeView_buttonEvent(GtkTreeView*, GdkEventButton* gdkEvent, pTreeView* p) -> signed { return p->_buttonEvent(gdkEvent); }
      |                                                                                        ^~
../hiro/core/../gtk/widget/tree-view.cpp:12:29: error: 'GtkTreeSelection' was not declared in this scope
   12 | static auto TreeView_change(GtkTreeSelection*, pTreeView* p) -> void { p->_updateSelected(); }
      |                             ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:12:46: error: expected primary-expression before ',' token
   12 | static auto TreeView_change(GtkTreeSelection*, pTreeView* p) -> void { p->_updateSelected(); }
      |                                              ^
../hiro/core/../gtk/widget/tree-view.cpp:12:57: error: expected primary-expression before '*' token
   12 | static auto TreeView_change(GtkTreeSelection*, pTreeView* p) -> void { p->_updateSelected(); }
      |                                                         ^
../hiro/core/../gtk/widget/tree-view.cpp:12:59: error: 'p' was not declared in this scope
   12 | static auto TreeView_change(GtkTreeSelection*, pTreeView* p) -> void { p->_updateSelected(); }
      |                                                           ^
../hiro/core/../gtk/widget/tree-view.cpp:12:60: error: expression list treated as compound expression in initializer [-fpermissive]
   12 | static auto TreeView_change(GtkTreeSelection*, pTreeView* p) -> void { p->_updateSelected(); }
      |                                                            ^
../hiro/core/../gtk/widget/tree-view.cpp:12:62: error: expected ',' or ';' before '->' token
   12 | static auto TreeView_change(GtkTreeSelection*, pTreeView* p) -> void { p->_updateSelected(); }
      |                                                              ^~
../hiro/core/../gtk/widget/tree-view.cpp:13:30: error: 'GtkTreeView' was not declared in this scope; did you mean 'wTreeView'?
   13 | static auto TreeView_context(GtkTreeView*, pTreeView* p) -> void { p->self().doContext(); }
      |                              ^~~~~~~~~~~
      |                              wTreeView
../hiro/core/../gtk/widget/tree-view.cpp:13:42: error: expected primary-expression before ',' token
   13 | static auto TreeView_context(GtkTreeView*, pTreeView* p) -> void { p->self().doContext(); }
      |                                          ^
../hiro/core/../gtk/widget/tree-view.cpp:13:53: error: expected primary-expression before '*' token
   13 | static auto TreeView_context(GtkTreeView*, pTreeView* p) -> void { p->self().doContext(); }
      |                                                     ^
../hiro/core/../gtk/widget/tree-view.cpp:13:55: error: 'p' was not declared in this scope
   13 | static auto TreeView_context(GtkTreeView*, pTreeView* p) -> void { p->self().doContext(); }
      |                                                       ^
../hiro/core/../gtk/widget/tree-view.cpp:13:56: error: expression list treated as compound expression in initializer [-fpermissive]
   13 | static auto TreeView_context(GtkTreeView*, pTreeView* p) -> void { p->self().doContext(); }
      |                                                        ^
../hiro/core/../gtk/widget/tree-view.cpp:13:58: error: expected ',' or ';' before '->' token
   13 | static auto TreeView_context(GtkTreeView*, pTreeView* p) -> void { p->self().doContext(); }
      |                                                          ^~
../hiro/core/../gtk/widget/tree-view.cpp:14:31: error: 'GtkTreeViewColumn' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:50: error: 'column' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                  ^~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:58: error: 'GtkCellRenderer' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                          ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:75: error: 'renderer' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                           ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:85: error: 'GtkTreeModel' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                     ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:99: error: 'model' was not declared in this scope; did you mean 'modfl'?
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                   ^~~~~
      |                                                                                                   modfl
../hiro/core/../gtk/widget/tree-view.cpp:14:106: error: 'GtkTreeIter' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                          ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:119: error: 'iter' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                       ^~~~
../hiro/core/../gtk/widget/tree-view.cpp:14:134: error: expected primary-expression before '*' token
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                      ^
../hiro/core/../gtk/widget/tree-view.cpp:14:136: error: 'p' was not declared in this scope
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                        ^
../hiro/core/../gtk/widget/tree-view.cpp:14:137: error: expression list treated as compound expression in initializer [-fpermissive]
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                         ^
../hiro/core/../gtk/widget/tree-view.cpp:14:139: error: expected ',' or ';' before '->' token
   14 | static auto TreeView_dataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter, pTreeView* p) -> void { return p->_doDataFunc(column, renderer, iter); }
      |                                                                                                                                           ^~
../hiro/core/../gtk/widget/tree-view.cpp:15:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/widget/tree-view.cpp:15:41: error: expected primary-expression before ',' token
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                         ^
../hiro/core/../gtk/widget/tree-view.cpp:15:43: error: 'GdkEventKey' was not declared in this scope
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                           ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:15:55: error: expected primary-expression before ',' token
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                                       ^
../hiro/core/../gtk/widget/tree-view.cpp:15:66: error: expected primary-expression before '*' token
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                                                  ^
../hiro/core/../gtk/widget/tree-view.cpp:15:68: error: 'p' was not declared in this scope
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                                                    ^
../hiro/core/../gtk/widget/tree-view.cpp:15:69: error: expression list treated as compound expression in initializer [-fpermissive]
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                                                     ^
../hiro/core/../gtk/widget/tree-view.cpp:15:71: error: expected ',' or ';' before '->' token
   15 | static auto TreeView_keyPress(GtkWidget*, GdkEventKey*, pTreeView* p) -> int { p->suppressActivate = false; return false; }
      |                                                                       ^~
../hiro/core/../gtk/widget/tree-view.cpp:16:29: error: 'GtkCellRendererToggle' was not declared in this scope
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                             ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:16:51: error: expected primary-expression before ',' token
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                                                   ^
../hiro/core/../gtk/widget/tree-view.cpp:16:53: error: expected primary-expression before 'char'
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                                                     ^~~~
../hiro/core/../gtk/widget/tree-view.cpp:16:74: error: expected primary-expression before '*' token
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                                                                          ^
../hiro/core/../gtk/widget/tree-view.cpp:16:76: error: 'p' was not declared in this scope
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                                                                            ^
../hiro/core/../gtk/widget/tree-view.cpp:16:77: error: expression list treated as compound expression in initializer [-fpermissive]
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                                                                             ^
../hiro/core/../gtk/widget/tree-view.cpp:16:79: error: expected ',' or ';' before '->' token
   16 | static auto TreeView_toggle(GtkCellRendererToggle*, char* path, pTreeView* p) -> void { p->_togglePath(path); }
      |                                                                               ^~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'virtual void hiro::pTreeView::construct()':
../hiro/core/../gtk/widget/tree-view.cpp:19:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   19 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/tree-view.cpp:19:15: error: 'gtk_scrolled_window_new' was not declared in this scope
   19 |   gtkWidget = gtk_scrolled_window_new(0, 0);
      |               ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:20:3: error: 'gtkScrolledWindow' was not declared in this scope
   20 |   gtkScrolledWindow = GTK_SCROLLED_WINDOW(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:20:23: error: 'GTK_SCROLLED_WINDOW' was not declared in this scope
   20 |   gtkScrolledWindow = GTK_SCROLLED_WINDOW(gtkWidget);
      |                       ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:21:53: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
   21 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |                                                     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:21:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
   21 |   gtk_scrolled_window_set_policy(gtkScrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:22:58: error: 'GTK_SHADOW_ETCHED_IN' was not declared in this scope
   22 |   gtk_scrolled_window_set_shadow_type(gtkScrolledWindow, GTK_SHADOW_ETCHED_IN);
      |                                                          ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:22:3: error: 'gtk_scrolled_window_set_shadow_type' was not declared in this scope
   22 |   gtk_scrolled_window_set_shadow_type(gtkScrolledWindow, GTK_SHADOW_ETCHED_IN);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:24:3: error: 'gtkTreeStore' was not declared in this scope
   24 |   gtkTreeStore = gtk_tree_store_new(3, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:24:40: error: 'G_TYPE_BOOLEAN' was not declared in this scope
   24 |   gtkTreeStore = gtk_tree_store_new(3, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                        ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:24:56: error: 'GDK_TYPE_PIXBUF' was not declared in this scope
   24 |   gtkTreeStore = gtk_tree_store_new(3, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                                        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:24:73: error: 'G_TYPE_STRING' was not declared in this scope
   24 |   gtkTreeStore = gtk_tree_store_new(3, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                                                                         ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:24:18: error: 'gtk_tree_store_new' was not declared in this scope
   24 |   gtkTreeStore = gtk_tree_store_new(3, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING);
      |                  ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:25:3: error: 'gtkTreeModel' was not declared in this scope
   25 |   gtkTreeModel = GTK_TREE_MODEL(gtkTreeStore);
      |   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:25:18: error: 'GTK_TREE_MODEL' was not declared in this scope
   25 |   gtkTreeModel = GTK_TREE_MODEL(gtkTreeStore);
      |                  ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:27:3: error: 'gtkWidgetChild' was not declared in this scope
   27 |   gtkWidgetChild = gtk_tree_view_new_with_model(gtkTreeModel);
      |   ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:27:20: error: 'gtk_tree_view_new_with_model' was not declared in this scope
   27 |   gtkWidgetChild = gtk_tree_view_new_with_model(gtkTreeModel);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:28:3: error: 'gtkTreeView' was not declared in this scope; did you mean 'pTreeView'?
   28 |   gtkTreeView = GTK_TREE_VIEW(gtkWidgetChild);
      |   ^~~~~~~~~~~
      |   pTreeView
../hiro/core/../gtk/widget/tree-view.cpp:28:17: error: 'GTK_TREE_VIEW' was not declared in this scope
   28 |   gtkTreeView = GTK_TREE_VIEW(gtkWidgetChild);
      |                 ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:29:3: error: 'gtkTreeSelection' was not declared in this scope
   29 |   gtkTreeSelection = gtk_tree_view_get_selection(gtkTreeView);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:29:22: error: 'gtk_tree_view_get_selection' was not declared in this scope
   29 |   gtkTreeSelection = gtk_tree_view_get_selection(gtkTreeView);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:30:3: error: 'gtk_tree_view_set_headers_visible' was not declared in this scope
   30 |   gtk_tree_view_set_headers_visible(gtkTreeView, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:31:3: error: 'gtk_tree_view_set_show_expanders' was not declared in this scope
   31 |   gtk_tree_view_set_show_expanders(gtkTreeView, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:32:3: error: 'gtk_tree_view_set_level_indentation' was not declared in this scope
   32 |   gtk_tree_view_set_level_indentation(gtkTreeView, TreeViewIndentation);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:33:21: error: 'GTK_CONTAINER' was not declared in this scope
   33 |   gtk_container_add(GTK_CONTAINER(gtkWidget), gtkWidgetChild);
      |                     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:33:3: error: 'gtk_container_add' was not declared in this scope
   33 |   gtk_container_add(GTK_CONTAINER(gtkWidget), gtkWidgetChild);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:34:3: error: 'gtk_widget_show' was not declared in this scope
   34 |   gtk_widget_show(gtkWidgetChild);
      |   ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:36:3: error: 'gtkTreeViewColumn' was not declared in this scope
   36 |   gtkTreeViewColumn = gtk_tree_view_column_new();
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:36:23: error: 'gtk_tree_view_column_new' was not declared in this scope
   36 |   gtkTreeViewColumn = gtk_tree_view_column_new();
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:38:3: error: 'gtkCellToggle' was not declared in this scope
   38 |   gtkCellToggle = gtk_cell_renderer_toggle_new();
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:38:19: error: 'gtk_cell_renderer_toggle_new' was not declared in this scope
   38 |   gtkCellToggle = gtk_cell_renderer_toggle_new();
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:39:3: error: 'gtk_tree_view_column_pack_start' was not declared in this scope
   39 |   gtk_tree_view_column_pack_start(gtkTreeViewColumn, gtkCellToggle, false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:40:3: error: 'gtk_tree_view_column_set_attributes' was not declared in this scope
   40 |   gtk_tree_view_column_set_attributes(gtkTreeViewColumn, gtkCellToggle, "active", 0, nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:41:62: error: 'GTK_CELL_RENDERER' was not declared in this scope
   41 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                                              ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:41:97: error: 'GtkTreeCellDataFunc' was not declared in this scope
   41 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                                                                                 ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:41:137: error: 'gpointer' was not declared in this scope
   41 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                                                                                                                         ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:41:3: error: 'gtk_tree_view_column_set_cell_data_func' was not declared in this scope
   41 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellToggle), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:43:3: error: 'gtkCellPixbuf' was not declared in this scope
   43 |   gtkCellPixbuf = gtk_cell_renderer_pixbuf_new();
      |   ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:43:19: error: 'gtk_cell_renderer_pixbuf_new' was not declared in this scope
   43 |   gtkCellPixbuf = gtk_cell_renderer_pixbuf_new();
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:46:117: error: expected ')' before 'TreeView_dataFunc'
   46 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellPixbuf), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                          ~                                                                          ^~~~~~~~~~~~~~~~~
      |                                                                                                                     )
../hiro/core/../gtk/widget/tree-view.cpp:46:146: error: expected ')' before 'this'
   46 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellPixbuf), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                          ~                                                                                                       ^~~~
      |                                                                                                                                                  )
../hiro/core/../gtk/widget/tree-view.cpp:48:3: error: 'gtkCellText' was not declared in this scope
   48 |   gtkCellText = gtk_cell_renderer_text_new();
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:48:17: error: 'gtk_cell_renderer_text_new' was not declared in this scope
   48 |   gtkCellText = gtk_cell_renderer_text_new();
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:51:115: error: expected ')' before 'TreeView_dataFunc'
   51 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellText), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                          ~                                                                        ^~~~~~~~~~~~~~~~~
      |                                                                                                                   )
../hiro/core/../gtk/widget/tree-view.cpp:51:144: error: expected ')' before 'this'
   51 |   gtk_tree_view_column_set_cell_data_func(gtkTreeViewColumn, GTK_CELL_RENDERER(gtkCellText), (GtkTreeCellDataFunc)TreeView_dataFunc, (gpointer)this, nullptr);
      |                                          ~                                                                                                     ^~~~
      |                                                                                                                                                )
../hiro/core/../gtk/widget/tree-view.cpp:53:3: error: 'gtk_tree_view_append_column' was not declared in this scope
   53 |   gtk_tree_view_append_column(gtkTreeView, gtkTreeViewColumn);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:54:3: error: 'gtk_tree_view_set_search_column' was not declared in this scope
   54 |   gtk_tree_view_set_search_column(gtkTreeView, 2);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:60:20: error: 'G_OBJECT' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "button-press-event", G_CALLBACK(TreeView_buttonEvent), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:60:68: error: 'G_CALLBACK' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "button-press-event", G_CALLBACK(TreeView_buttonEvent), (gpointer)this);
      |                                                                    ^~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:60:112: error: expected ')' before 'this'
   60 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "button-press-event", G_CALLBACK(TreeView_buttonEvent), (gpointer)this);
      |                   ~                                                                                            ^~~~
      |                                                                                                                )
../hiro/core/../gtk/widget/tree-view.cpp:60:3: error: 'g_signal_connect' was not declared in this scope
   60 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "button-press-event", G_CALLBACK(TreeView_buttonEvent), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:61:114: error: expected ')' before 'this'
   61 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "button-release-event", G_CALLBACK(TreeView_buttonEvent), (gpointer)this);
      |                   ~                                                                                              ^~~~
      |                                                                                                                  )
../hiro/core/../gtk/widget/tree-view.cpp:62:106: error: expected ')' before 'this'
   62 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "key-press-event", G_CALLBACK(TreeView_keyPress), (gpointer)this);
      |                   ~                                                                                      ^~~~
      |                                                                                                          )
../hiro/core/../gtk/widget/tree-view.cpp:63:100: error: expected ')' before 'this'
   63 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "popup-menu", G_CALLBACK(TreeView_context), (gpointer)this);
      |                   ~                                                                                ^~~~
      |                                                                                                    )
../hiro/core/../gtk/widget/tree-view.cpp:64:104: error: expected ')' before 'this'
   64 |   g_signal_connect(G_OBJECT(gtkWidgetChild), "row-activated", G_CALLBACK(TreeView_activate), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/tree-view.cpp:65:98: error: expected ')' before 'this'
   65 |   g_signal_connect(G_OBJECT(gtkTreeSelection), "changed", G_CALLBACK(TreeView_change), (gpointer)this);
      |                   ~                                                                              ^~~~
      |                                                                                                  )
../hiro/core/../gtk/widget/tree-view.cpp:66:95: error: expected ')' before 'this'
   66 |   g_signal_connect(G_OBJECT(gtkCellToggle), "toggled", G_CALLBACK(TreeView_toggle), (gpointer)this);
      |                   ~                                                                           ^~~~
      |                                                                                               )
../hiro/core/../gtk/widget/tree-view.cpp:73:3: error: 'gtkEntry' was not declared in this scope
   73 |   gtkEntry = (GtkEntry*)gtk_entry_new();
      |   ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:73:15: error: 'GtkEntry' was not declared in this scope
   73 |   gtkEntry = (GtkEntry*)gtk_entry_new();
      |               ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:73:24: error: expected primary-expression before ')' token
   73 |   gtkEntry = (GtkEntry*)gtk_entry_new();
      |                        ^
../hiro/core/../gtk/widget/tree-view.cpp:74:3: error: 'gtk_tree_view_set_search_entry' was not declared in this scope
   74 |   gtk_tree_view_set_search_entry(gtkTreeView, gtkEntry);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'virtual void hiro::pTreeView::destruct()':
../hiro/core/../gtk/widget/tree-view.cpp:80:33: error: 'gtkEntry' was not declared in this scope
   80 |   gtk_widget_destroy(GTK_WIDGET(gtkEntry));
      |                                 ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:80:22: error: 'GTK_WIDGET' was not declared in this scope
   80 |   gtk_widget_destroy(GTK_WIDGET(gtkEntry));
      |                      ^~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:80:3: error: 'gtk_widget_destroy' was not declared in this scope
   80 |   gtk_widget_destroy(GTK_WIDGET(gtkEntry));
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:81:22: error: 'gtkWidgetChild' was not declared in this scope
   81 |   gtk_widget_destroy(gtkWidgetChild);
      |                      ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:82:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   82 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'void hiro::pTreeView::setBackgroundColor(hiro::Color)':
../hiro/core/../gtk/widget/tree-view.cpp:98:19: error: 'CreateColor' was not declared in this scope
   98 |   auto gdkColor = CreateColor(color);
      |                   ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:99:26: error: 'gtkWidgetChild' was not declared in this scope
   99 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:99:42: error: 'GTK_STATE_NORMAL' was not declared in this scope
   99 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                          ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:99:3: error: 'gtk_widget_modify_base' was not declared in this scope
   99 |   gtk_widget_modify_base(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'virtual void hiro::pTreeView::setFocused()':
../hiro/core/../gtk/widget/tree-view.cpp:106:51: error: 'gtkTreeSelection' was not declared in this scope
  106 |   bool selected = gtk_tree_selection_get_selected(gtkTreeSelection, nullptr, nullptr);
      |                                                   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:106:19: error: 'gtk_tree_selection_get_selected' was not declared in this scope
  106 |   bool selected = gtk_tree_selection_get_selected(gtkTreeSelection, nullptr, nullptr);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:107:25: error: 'gtkWidgetChild' was not declared in this scope
  107 |   gtk_widget_grab_focus(gtkWidgetChild);
      |                         ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:107:3: error: 'gtk_widget_grab_focus' was not declared in this scope
  107 |   gtk_widget_grab_focus(gtkWidgetChild);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:108:17: error: 'gtk_tree_selection_unselect_all' was not declared in this scope
  108 |   if(!selected) gtk_tree_selection_unselect_all(gtkTreeSelection);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'void hiro::pTreeView::setForegroundColor(hiro::Color)':
../hiro/core/../gtk/widget/tree-view.cpp:113:19: error: 'CreateColor' was not declared in this scope
  113 |   auto gdkColor = CreateColor(color);
      |                   ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:114:26: error: 'gtkWidgetChild' was not declared in this scope
  114 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                          ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:114:42: error: 'GTK_STATE_NORMAL' was not declared in this scope
  114 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |                                          ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:114:3: error: 'gtk_widget_modify_text' was not declared in this scope
  114 |   gtk_widget_modify_text(gtkWidgetChild, GTK_STATE_NORMAL, color ? &gdkColor : nullptr);
      |   ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp: At global scope:
../hiro/core/../gtk/widget/tree-view.cpp:124:6: error: 'auto hiro::pTreeView::_activatePath' is not a static data member of 'struct hiro::pTreeView'
  124 | auto pTreeView::_activatePath(GtkTreePath* gtkPath) -> void {
      |      ^~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:124:31: error: 'GtkTreePath' was not declared in this scope
  124 | auto pTreeView::_activatePath(GtkTreePath* gtkPath) -> void {
      |                               ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:124:44: error: 'gtkPath' was not declared in this scope
  124 | auto pTreeView::_activatePath(GtkTreePath* gtkPath) -> void {
      |                                            ^~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:124:53: error: expected ',' or ';' before '->' token
  124 | auto pTreeView::_activatePath(GtkTreePath* gtkPath) -> void {
      |                                                     ^~
../hiro/core/../gtk/widget/tree-view.cpp:137:6: error: 'auto hiro::pTreeView::_buttonEvent' is not a static data member of 'struct hiro::pTreeView'
  137 | auto pTreeView::_buttonEvent(GdkEventButton* gdkEvent) -> signed {
      |      ^~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:137:30: error: 'GdkEventButton' was not declared in this scope
  137 | auto pTreeView::_buttonEvent(GdkEventButton* gdkEvent) -> signed {
      |                              ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:137:46: error: 'gdkEvent' was not declared in this scope
  137 | auto pTreeView::_buttonEvent(GdkEventButton* gdkEvent) -> signed {
      |                                              ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:137:56: error: expected ',' or ';' before '->' token
  137 | auto pTreeView::_buttonEvent(GdkEventButton* gdkEvent) -> signed {
      |                                                        ^~
../hiro/core/../gtk/widget/tree-view.cpp:195:6: error: 'auto hiro::pTreeView::_doDataFunc' is not a static data member of 'struct hiro::pTreeView'
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |      ^~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:29: error: 'GtkTreeViewColumn' was not declared in this scope
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                             ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:48: error: 'column' was not declared in this scope
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                ^~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:56: error: 'GtkCellRenderer' was not declared in this scope
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                        ^~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:73: error: 'renderer' was not declared in this scope
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                         ^~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:83: error: 'GtkTreeIter' was not declared in this scope
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                   ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:96: error: 'iter' was not declared in this scope
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                                ^~~~
../hiro/core/../gtk/widget/tree-view.cpp:195:100: error: expression list treated as compound expression in initializer [-fpermissive]
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                                    ^
../hiro/core/../gtk/widget/tree-view.cpp:195:102: error: expected ',' or ';' before '->' token
  195 | auto pTreeView::_doDataFunc(GtkTreeViewColumn* column, GtkCellRenderer* renderer, GtkTreeIter* iter) -> void {
      |                                                                                                      ^~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'void hiro::pTreeView::_togglePath(nall::string)':
../hiro/core/../gtk/widget/tree-view.cpp:233:24: error: 'gtkTreeStore' was not declared in this scope
  233 |     gtk_tree_store_set(gtkTreeStore, &item->self()->gtkIter, 0, checked, -1);
      |                        ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:233:53: error: 'struct hiro::pTreeViewItem' has no member named 'gtkIter'
  233 |     gtk_tree_store_set(gtkTreeStore, &item->self()->gtkIter, 0, checked, -1);
      |                                                     ^~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:233:5: error: 'gtk_tree_store_set' was not declared in this scope
  233 |     gtk_tree_store_set(gtkTreeStore, &item->self()->gtkIter, 0, checked, -1);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'void hiro::pTreeView::_updateScrollBars()':
../hiro/core/../gtk/widget/tree-view.cpp:250:58: error: 'gtkScrolledWindow' was not declared in this scope
  250 |   if(auto scrollBar = gtk_scrolled_window_get_vscrollbar(gtkScrolledWindow)) {
      |                                                          ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:250:23: error: 'gtk_scrolled_window_get_vscrollbar' was not declared in this scope
  250 |   if(auto scrollBar = gtk_scrolled_window_get_vscrollbar(gtkScrolledWindow)) {
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:251:5: error: 'GtkAllocation' was not declared in this scope
  251 |     GtkAllocation allocation;
      |     ^~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:252:43: error: 'allocation' was not declared in this scope
  252 |     gtk_widget_get_allocation(scrollBar, &allocation);
      |                                           ^~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:252:5: error: 'gtk_widget_get_allocation' was not declared in this scope
  252 |     gtk_widget_get_allocation(scrollBar, &allocation);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:253:8: error: 'gtk_widget_get_visible' was not declared in this scope
  253 |     if(gtk_widget_get_visible(scrollBar)) maximumWidth -= allocation.width;
      |        ^~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:263:34: error: 'gtkScrolledWindow' was not declared in this scope
  263 |   gtk_scrolled_window_set_policy(gtkScrolledWindow,
      |                                  ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:264:36: error: 'GTK_POLICY_ALWAYS' was not declared in this scope
  264 |     minimumWidth >= maximumWidth ? GTK_POLICY_ALWAYS : GTK_POLICY_NEVER,
      |                                    ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:264:56: error: 'GTK_POLICY_NEVER' was not declared in this scope
  264 |     minimumWidth >= maximumWidth ? GTK_POLICY_ALWAYS : GTK_POLICY_NEVER,
      |                                                        ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:265:5: error: 'GTK_POLICY_AUTOMATIC' was not declared in this scope
  265 |     GTK_POLICY_AUTOMATIC);
      |     ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:263:3: error: 'gtk_scrolled_window_set_policy' was not declared in this scope
  263 |   gtk_scrolled_window_set_policy(gtkScrolledWindow,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp: In member function 'void hiro::pTreeView::_updateSelected()':
../hiro/core/../gtk/widget/tree-view.cpp:271:37: error: 'gtkTreeSelection' was not declared in this scope
  271 |     gtk_tree_selection_unselect_all(gtkTreeSelection);
      |                                     ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:271:5: error: 'gtk_tree_selection_unselect_all' was not declared in this scope
  271 |     gtk_tree_selection_unselect_all(gtkTreeSelection);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:275:3: error: 'GtkTreeIter' was not declared in this scope
  275 |   GtkTreeIter iter;
      |   ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:276:38: error: 'gtkTreeSelection' was not declared in this scope
  276 |   if(gtk_tree_selection_get_selected(gtkTreeSelection, &gtkTreeModel, &iter)) {
      |                                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:276:57: error: 'gtkTreeModel' was not declared in this scope
  276 |   if(gtk_tree_selection_get_selected(gtkTreeSelection, &gtkTreeModel, &iter)) {
      |                                                         ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:276:72: error: 'iter' was not declared in this scope
  276 |   if(gtk_tree_selection_get_selected(gtkTreeSelection, &gtkTreeModel, &iter)) {
      |                                                                        ^~~~
../hiro/core/../gtk/widget/tree-view.cpp:276:6: error: 'gtk_tree_selection_get_selected' was not declared in this scope
  276 |   if(gtk_tree_selection_get_selected(gtkTreeSelection, &gtkTreeModel, &iter)) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:277:21: error: 'gtk_tree_model_get_string_from_iter' was not declared in this scope
  277 |     char* gtkPath = gtk_tree_model_get_string_from_iter(gtkTreeModel, &iter);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view.cpp:279:5: error: 'g_free' was not declared in this scope; did you mean 'free'?
  279 |     g_free(gtkPath);
      |     ^~~~~~
      |     free
In file included from ../hiro/core/../gtk/platform.cpp:60:
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'virtual void hiro::pTreeViewItem::construct()':
../hiro/core/../gtk/widget/tree-view-item.cpp:8:43: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
    8 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, &parentItem->gtkIter);
      |                                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:8:58: error: 'gtkIter' was not declared in this scope
    8 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, &parentItem->gtkIter);
      |                                                          ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:8:80: error: 'struct hiro::pTreeViewItem' has no member named 'gtkIter'
    8 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, &parentItem->gtkIter);
      |                                                                                ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:8:7: error: 'gtk_tree_store_append' was not declared in this scope
    8 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, &parentItem->gtkIter);
      |       ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:10:43: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
   10 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, nullptr);
      |                                           ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:10:58: error: 'gtkIter' was not declared in this scope
   10 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, nullptr);
      |                                                          ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:10:7: error: 'gtk_tree_store_append' was not declared in this scope
   10 |       gtk_tree_store_append(parentWidget->gtkTreeStore, &gtkIter, nullptr);
      |       ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'virtual void hiro::pTreeViewItem::destruct()':
../hiro/core/../gtk/widget/tree-view-item.cpp:20:35: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
   20 |     gtk_tree_store_remove(parent->gtkTreeStore, &gtkIter);
      |                                   ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:20:50: error: 'gtkIter' was not declared in this scope
   20 |     gtk_tree_store_remove(parent->gtkTreeStore, &gtkIter);
      |                                                  ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:20:5: error: 'gtk_tree_store_remove' was not declared in this scope
   20 |     gtk_tree_store_remove(parent->gtkTreeStore, &gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'void hiro::pTreeViewItem::setChecked(bool)':
../hiro/core/../gtk/widget/tree-view-item.cpp:41:38: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
   41 |     gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 0, checked, -1);
      |                                      ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:41:53: error: 'gtkIter' was not declared in this scope
   41 |     gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 0, checked, -1);
      |                                                     ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:41:5: error: 'gtk_tree_store_set' was not declared in this scope
   41 |     gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 0, checked, -1);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'void hiro::pTreeViewItem::setExpanded(bool)':
../hiro/core/../gtk/widget/tree-view-item.cpp:47:55: error: 'struct hiro::pTreeView' has no member named 'gtkTreeModel'
   47 |     auto path = gtk_tree_model_get_path(parentWidget->gtkTreeModel, &gtkIter);
      |                                                       ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:47:70: error: 'gtkIter' was not declared in this scope
   47 |     auto path = gtk_tree_model_get_path(parentWidget->gtkTreeModel, &gtkIter);
      |                                                                      ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:47:17: error: 'gtk_tree_model_get_path' was not declared in this scope
   47 |     auto path = gtk_tree_model_get_path(parentWidget->gtkTreeModel, &gtkIter);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:49:46: error: 'struct hiro::pTreeView' has no member named 'gtkTreeView'; did you mean 'pTreeView'?
   49 |       gtk_tree_view_expand_row(parentWidget->gtkTreeView, path, false);
      |                                              ^~~~~~~~~~~
      |                                              pTreeView
../hiro/core/../gtk/widget/tree-view-item.cpp:49:7: error: 'gtk_tree_view_expand_row' was not declared in this scope
   49 |       gtk_tree_view_expand_row(parentWidget->gtkTreeView, path, false);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:56:48: error: 'struct hiro::pTreeView' has no member named 'gtkTreeView'; did you mean 'pTreeView'?
   56 |       gtk_tree_view_collapse_row(parentWidget->gtkTreeView, path);
      |                                                ^~~~~~~~~~~
      |                                                pTreeView
../hiro/core/../gtk/widget/tree-view-item.cpp:56:7: error: 'gtk_tree_view_collapse_row' was not declared in this scope
   56 |       gtk_tree_view_collapse_row(parentWidget->gtkTreeView, path);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:58:5: error: 'gtk_tree_path_free' was not declared in this scope
   58 |     gtk_tree_path_free(path);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'virtual void hiro::pTreeViewItem::setFocused()':
../hiro/core/../gtk/widget/tree-view-item.cpp:64:5: error: 'GtkTreePath' was not declared in this scope
   64 |     GtkTreePath* path = gtk_tree_path_new_from_string(self().path().transform("/", ":"));
      |     ^~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:64:18: error: 'path' was not declared in this scope; did you mean 'nall::Location::path'?
   64 |     GtkTreePath* path = gtk_tree_path_new_from_string(self().path().transform("/", ":"));
      |                  ^~~~
      |                  nall::Location::path
../nall/location.hpp:9:13: note: 'nall::Location::path' declared here
    9 | inline auto path(string_view self) -> string {
      |             ^~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:64:25: error: 'gtk_tree_path_new_from_string' was not declared in this scope
   64 |     GtkTreePath* path = gtk_tree_path_new_from_string(self().path().transform("/", ":"));
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:65:44: error: 'struct hiro::pTreeView' has no member named 'gtkTreeView'; did you mean 'pTreeView'?
   65 |     gtk_tree_view_set_cursor(parentWidget->gtkTreeView, path, nullptr, false);
      |                                            ^~~~~~~~~~~
      |                                            pTreeView
../hiro/core/../gtk/widget/tree-view-item.cpp:65:5: error: 'gtk_tree_view_set_cursor' was not declared in this scope
   65 |     gtk_tree_view_set_cursor(parentWidget->gtkTreeView, path, nullptr, false);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:66:48: error: 'struct hiro::pTreeView' has no member named 'gtkTreeView'; did you mean 'pTreeView'?
   66 |     gtk_tree_view_scroll_to_cell(parentWidget->gtkTreeView, path, nullptr, true, 0.5, 0.0);
      |                                                ^~~~~~~~~~~
      |                                                pTreeView
../hiro/core/../gtk/widget/tree-view-item.cpp:66:5: error: 'gtk_tree_view_scroll_to_cell' was not declared in this scope
   66 |     gtk_tree_view_scroll_to_cell(parentWidget->gtkTreeView, path, nullptr, true, 0.5, 0.0);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:67:5: error: 'gtk_tree_path_free' was not declared in this scope
   67 |     gtk_tree_path_free(path);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'void hiro::pTreeViewItem::setIcon(const nall::image&)':
../hiro/core/../gtk/widget/tree-view-item.cpp:77:21: error: 'CreatePixbuf' was not declared in this scope
   77 |       auto pixbuf = CreatePixbuf(icon);
      |                     ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:78:40: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
   78 |       gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 1, pixbuf, -1);
      |                                        ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:78:55: error: 'gtkIter' was not declared in this scope
   78 |       gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 1, pixbuf, -1);
      |                                                       ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:78:7: error: 'gtk_tree_store_set' was not declared in this scope
   78 |       gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 1, pixbuf, -1);
      |       ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:80:40: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
   80 |       gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 1, nullptr, -1);
      |                                        ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:80:55: error: 'gtkIter' was not declared in this scope
   80 |       gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 1, nullptr, -1);
      |                                                       ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:80:7: error: 'gtk_tree_store_set' was not declared in this scope
   80 |       gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 1, nullptr, -1);
      |       ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'void hiro::pTreeViewItem::setSelected()':
../hiro/core/../gtk/widget/tree-view-item.cpp:90:58: error: 'struct hiro::pTreeView' has no member named 'gtkTreeModel'
   90 |     auto gtkPath = gtk_tree_model_get_path(parentWidget->gtkTreeModel, &gtkIter);
      |                                                          ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:90:73: error: 'gtkIter' was not declared in this scope
   90 |     auto gtkPath = gtk_tree_model_get_path(parentWidget->gtkTreeModel, &gtkIter);
      |                                                                         ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:90:20: error: 'gtk_tree_model_get_path' was not declared in this scope
   90 |     auto gtkPath = gtk_tree_model_get_path(parentWidget->gtkTreeModel, &gtkIter);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:91:48: error: 'struct hiro::pTreeView' has no member named 'gtkTreeView'; did you mean 'pTreeView'?
   91 |     gtk_tree_view_expand_to_path(parentWidget->gtkTreeView, gtkPath);
      |                                                ^~~~~~~~~~~
      |                                                pTreeView
../hiro/core/../gtk/widget/tree-view-item.cpp:91:5: error: 'gtk_tree_view_expand_to_path' was not declared in this scope
   91 |     gtk_tree_view_expand_to_path(parentWidget->gtkTreeView, gtkPath);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:92:5: error: 'gtk_tree_path_free' was not declared in this scope
   92 |     gtk_tree_path_free(gtkPath);
      |     ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:93:50: error: 'struct hiro::pTreeView' has no member named 'gtkTreeSelection'
   93 |     gtk_tree_selection_select_iter(parentWidget->gtkTreeSelection, &gtkIter);
      |                                                  ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:93:5: error: 'gtk_tree_selection_select_iter' was not declared in this scope
   93 |     gtk_tree_selection_select_iter(parentWidget->gtkTreeSelection, &gtkIter);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp: In member function 'void hiro::pTreeViewItem::setText(const nall::string&)':
../hiro/core/../gtk/widget/tree-view-item.cpp:100:38: error: 'struct hiro::pTreeView' has no member named 'gtkTreeStore'
  100 |     gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 2, (const char*)text, -1);
      |                                      ^~~~~~~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:100:53: error: 'gtkIter' was not declared in this scope
  100 |     gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 2, (const char*)text, -1);
      |                                                     ^~~~~~~
../hiro/core/../gtk/widget/tree-view-item.cpp:100:5: error: 'gtk_tree_store_set' was not declared in this scope
  100 |     gtk_tree_store_set(parentWidget->gtkTreeStore, &gtkIter, 2, (const char*)text, -1);
      |     ^~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:61:
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp: At global scope:
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:5:38: error: 'GtkRange' was not declared in this scope
    5 | static auto VerticalScrollBar_change(GtkRange* gtkRange, pVerticalScrollBar* p) -> void {
      |                                      ^~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:5:48: error: 'gtkRange' was not declared in this scope
    5 | static auto VerticalScrollBar_change(GtkRange* gtkRange, pVerticalScrollBar* p) -> void {
      |                                                ^~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:5:76: error: expected primary-expression before '*' token
    5 | static auto VerticalScrollBar_change(GtkRange* gtkRange, pVerticalScrollBar* p) -> void {
      |                                                                            ^
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:5:78: error: 'p' was not declared in this scope
    5 | static auto VerticalScrollBar_change(GtkRange* gtkRange, pVerticalScrollBar* p) -> void {
      |                                                                              ^
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:5:79: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto VerticalScrollBar_change(GtkRange* gtkRange, pVerticalScrollBar* p) -> void {
      |                                                                               ^
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:5:81: error: expected ',' or ';' before '->' token
    5 | static auto VerticalScrollBar_change(GtkRange* gtkRange, pVerticalScrollBar* p) -> void {
      |                                                                                 ^~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp: In member function 'virtual void hiro::pVerticalScrollBar::construct()':
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:16:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   16 |   gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:16:33: error: 'GTK_ORIENTATION_VERTICAL' was not declared in this scope
   16 |   gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:16:15: error: 'gtk_scrollbar_new' was not declared in this scope
   16 |   gtkWidget = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
      |               ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:22:20: error: 'G_OBJECT' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalScrollBar_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:22:58: error: 'G_CALLBACK' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalScrollBar_change), (gpointer)this);
      |                                                          ^~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:22:97: error: 'gpointer' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalScrollBar_change), (gpointer)this);
      |                                                                                                 ^~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:22:3: error: 'g_signal_connect' was not declared in this scope
   22 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalScrollBar_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp: In member function 'virtual void hiro::pVerticalScrollBar::destruct()':
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:28:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   28 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:28:3: error: 'gtk_widget_destroy' was not declared in this scope
   28 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp: In member function 'void hiro::pVerticalScrollBar::setLength(unsigned int)':
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:38:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:38:23: error: 'GTK_RANGE' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:38:3: error: 'gtk_range_set_range' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:39:3: error: 'gtk_range_set_increments' was not declared in this scope
   39 |   gtk_range_set_increments(GTK_RANGE(gtkWidget), 1, length >> 3);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp: In member function 'void hiro::pVerticalScrollBar::setPosition(unsigned int)':
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:43:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:43:23: error: 'GTK_RANGE' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/vertical-scroll-bar.cpp:43:3: error: 'gtk_range_set_value' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |   ^~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:62:
../hiro/core/../gtk/widget/vertical-slider.cpp: At global scope:
../hiro/core/../gtk/widget/vertical-slider.cpp:5:35: error: 'GtkRange' was not declared in this scope
    5 | static auto VerticalSlider_change(GtkRange* gtkRange, pVerticalSlider* p) -> void {
      |                                   ^~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:5:45: error: 'gtkRange' was not declared in this scope
    5 | static auto VerticalSlider_change(GtkRange* gtkRange, pVerticalSlider* p) -> void {
      |                                             ^~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:5:70: error: expected primary-expression before '*' token
    5 | static auto VerticalSlider_change(GtkRange* gtkRange, pVerticalSlider* p) -> void {
      |                                                                      ^
../hiro/core/../gtk/widget/vertical-slider.cpp:5:72: error: 'p' was not declared in this scope
    5 | static auto VerticalSlider_change(GtkRange* gtkRange, pVerticalSlider* p) -> void {
      |                                                                        ^
../hiro/core/../gtk/widget/vertical-slider.cpp:5:73: error: expression list treated as compound expression in initializer [-fpermissive]
    5 | static auto VerticalSlider_change(GtkRange* gtkRange, pVerticalSlider* p) -> void {
      |                                                                         ^
../hiro/core/../gtk/widget/vertical-slider.cpp:5:75: error: expected ',' or ';' before '->' token
    5 | static auto VerticalSlider_change(GtkRange* gtkRange, pVerticalSlider* p) -> void {
      |                                                                           ^~
../hiro/core/../gtk/widget/vertical-slider.cpp: In member function 'virtual void hiro::pVerticalSlider::construct()':
../hiro/core/../gtk/widget/vertical-slider.cpp:16:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   16 |   gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_VERTICAL, 0, 100, 1);
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/vertical-slider.cpp:16:40: error: 'GTK_ORIENTATION_VERTICAL' was not declared in this scope
   16 |   gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_VERTICAL, 0, 100, 1);
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:16:15: error: 'gtk_scale_new_with_range' was not declared in this scope
   16 |   gtkWidget = gtk_scale_new_with_range(GTK_ORIENTATION_VERTICAL, 0, 100, 1);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:18:28: error: 'GTK_SCALE' was not declared in this scope
   18 |   gtk_scale_set_draw_value(GTK_SCALE(gtkWidget), false);
      |                            ^~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:18:3: error: 'gtk_scale_set_draw_value' was not declared in this scope
   18 |   gtk_scale_set_draw_value(GTK_SCALE(gtkWidget), false);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:23:20: error: 'G_OBJECT' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalSlider_change), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:23:58: error: 'G_CALLBACK' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalSlider_change), (gpointer)this);
      |                                                          ^~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:23:94: error: 'gpointer' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalSlider_change), (gpointer)this);
      |                                                                                              ^~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:23:3: error: 'g_signal_connect' was not declared in this scope
   23 |   g_signal_connect(G_OBJECT(gtkWidget), "value-changed", G_CALLBACK(VerticalSlider_change), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp: In member function 'virtual void hiro::pVerticalSlider::destruct()':
../hiro/core/../gtk/widget/vertical-slider.cpp:29:22: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   29 |   gtk_widget_destroy(gtkWidget);
      |                      ^~~~~~~~~
      |                      pWidget
../hiro/core/../gtk/widget/vertical-slider.cpp:29:3: error: 'gtk_widget_destroy' was not declared in this scope
   29 |   gtk_widget_destroy(gtkWidget);
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp: In member function 'void hiro::pVerticalSlider::setLength(unsigned int)':
../hiro/core/../gtk/widget/vertical-slider.cpp:38:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/vertical-slider.cpp:38:23: error: 'GTK_RANGE' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:38:3: error: 'gtk_range_set_range' was not declared in this scope
   38 |   gtk_range_set_range(GTK_RANGE(gtkWidget), 0, max(1u, length - 1));
      |   ^~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:39:3: error: 'gtk_range_set_increments' was not declared in this scope
   39 |   gtk_range_set_increments(GTK_RANGE(gtkWidget), 1, length >> 3);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp: In member function 'void hiro::pVerticalSlider::setPosition(unsigned int)':
../hiro/core/../gtk/widget/vertical-slider.cpp:43:33: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                                 ^~~~~~~~~
      |                                 pWidget
../hiro/core/../gtk/widget/vertical-slider.cpp:43:23: error: 'GTK_RANGE' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |                       ^~~~~~~~~
../hiro/core/../gtk/widget/vertical-slider.cpp:43:3: error: 'gtk_range_set_value' was not declared in this scope
   43 |   gtk_range_set_value(GTK_RANGE(gtkWidget), position);
      |   ^~~~~~~~~~~~~~~~~~~
In file included from ../hiro/core/../gtk/platform.cpp:63:
../hiro/core/../gtk/widget/viewport.cpp: At global scope:
../hiro/core/../gtk/widget/viewport.cpp:6:27: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                           ^~~~~~~~~
      |                           wWidget
../hiro/core/../gtk/widget/viewport.cpp:6:38: error: 'widget' was not declared in this scope; did you mean 'Widget'?
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                      ^~~~~~
      |                                      Widget
../hiro/core/../gtk/widget/viewport.cpp:6:46: error: 'cairo_t' was not declared in this scope
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                              ^~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:6:55: error: 'context' was not declared in this scope; did you mean 'ucontext'?
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                                       ^~~~~~~
      |                                                       ucontext
../hiro/core/../gtk/widget/viewport.cpp:6:73: error: expected primary-expression before '*' token
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                                                         ^
../hiro/core/../gtk/widget/viewport.cpp:6:75: error: 'p' was not declared in this scope
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                                                           ^
../hiro/core/../gtk/widget/viewport.cpp:6:76: error: expression list treated as compound expression in initializer [-fpermissive]
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                                                            ^
../hiro/core/../gtk/widget/viewport.cpp:6:78: error: expected ',' or ';' before '->' token
    6 | static auto Viewport_draw(GtkWidget* widget, cairo_t* context, pViewport* p) -> signed {
      |                                                                              ^~
../hiro/core/../gtk/widget/viewport.cpp:12:29: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                             ^~~~~~~~~
      |                             wWidget
../hiro/core/../gtk/widget/viewport.cpp:12:40: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                        ^~~~~~
      |                                        Widget
../hiro/core/../gtk/widget/viewport.cpp:12:48: error: 'GdkEventExpose' was not declared in this scope
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                                ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:12:64: error: 'event' was not declared in this scope; did you mean 'servent'?
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                                                ^~~~~
      |                                                                servent
../hiro/core/../gtk/widget/viewport.cpp:12:80: error: expected primary-expression before '*' token
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                                                                ^
../hiro/core/../gtk/widget/viewport.cpp:12:82: error: 'p' was not declared in this scope
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/viewport.cpp:12:83: error: expression list treated as compound expression in initializer [-fpermissive]
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                                                                   ^
../hiro/core/../gtk/widget/viewport.cpp:12:85: error: expected ',' or ';' before '->' token
   12 | static auto Viewport_expose(GtkWidget* widget, GdkEventExpose* event, pViewport* p) -> signed {
      |                                                                                     ^~
../hiro/core/../gtk/widget/viewport.cpp:17:31: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                               ^~~~~~~~~
      |                               wWidget
../hiro/core/../gtk/widget/viewport.cpp:17:42: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                          ^~~~~~
      |                                          Widget
../hiro/core/../gtk/widget/viewport.cpp:17:50: error: 'GdkEventKey' was not declared in this scope
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                  ^~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:17:63: error: 'event' was not declared in this scope; did you mean 'servent'?
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                               ^~~~~
      |                                                               servent
../hiro/core/../gtk/widget/viewport.cpp:17:79: error: expected primary-expression before '*' token
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                               ^
../hiro/core/../gtk/widget/viewport.cpp:17:81: error: 'p' was not declared in this scope
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                                 ^
../hiro/core/../gtk/widget/viewport.cpp:17:82: error: expression list treated as compound expression in initializer [-fpermissive]
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                                  ^
../hiro/core/../gtk/widget/viewport.cpp:17:84: error: expected ',' or ';' before '->' token
   17 | static auto Viewport_keyPress(GtkWidget* widget, GdkEventKey* event, pViewport* p) -> signed {
      |                                                                                    ^~
../hiro/core/../gtk/widget/viewport.cpp:26:33: error: 'GtkWidget' was not declared in this scope; did you mean 'wWidget'?
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                 ^~~~~~~~~
      |                                 wWidget
../hiro/core/../gtk/widget/viewport.cpp:26:44: error: 'widget' was not declared in this scope; did you mean 'Widget'?
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                            ^~~~~~
      |                                            Widget
../hiro/core/../gtk/widget/viewport.cpp:26:52: error: 'GdkEventButton' was not declared in this scope
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                                    ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:26:68: error: 'event' was not declared in this scope; did you mean 'servent'?
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                                                    ^~~~~
      |                                                                    servent
../hiro/core/../gtk/widget/viewport.cpp:26:84: error: expected primary-expression before '*' token
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                                                                    ^
../hiro/core/../gtk/widget/viewport.cpp:26:86: error: 'p' was not declared in this scope
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                                                                      ^
../hiro/core/../gtk/widget/viewport.cpp:26:87: error: expression list treated as compound expression in initializer [-fpermissive]
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                                                                       ^
../hiro/core/../gtk/widget/viewport.cpp:26:89: error: expected ',' or ';' before '->' token
   26 | static auto Viewport_mousePress(GtkWidget* widget, GdkEventButton* event, pViewport* p) -> signed {
      |                                                                                         ^~
../hiro/core/../gtk/widget/viewport.cpp: In member function 'virtual void hiro::pViewport::construct()':
../hiro/core/../gtk/widget/viewport.cpp:35:3: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   35 |   gtkWidget = gtk_drawing_area_new();
      |   ^~~~~~~~~
      |   pWidget
../hiro/core/../gtk/widget/viewport.cpp:35:15: error: 'gtk_drawing_area_new' was not declared in this scope
   35 |   gtkWidget = gtk_drawing_area_new();
      |               ^~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:37:5: error: 'GDK_BUTTON_PRESS_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:37:29: error: 'GDK_BUTTON_RELEASE_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:37:55: error: 'GDK_EXPOSURE_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                       ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:37:75: error: 'GDK_ENTER_NOTIFY_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                                           ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:37:99: error: 'GDK_LEAVE_NOTIFY_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                                                                   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:37:123: error: 'GDK_POINTER_MOTION_MASK' was not declared in this scope
   37 |     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_EXPOSURE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK);
      |                                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:36:3: error: 'gtk_widget_add_events' was not declared in this scope
   36 |   gtk_widget_add_events(gtkWidget,
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:39:20: error: 'G_OBJECT' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Viewport_mousePress), (gpointer)this);
      |                    ^~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:39:63: error: 'G_CALLBACK' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Viewport_mousePress), (gpointer)this);
      |                                                               ^~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:39:97: error: 'gpointer' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Viewport_mousePress), (gpointer)this);
      |                                                                                                 ^~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:39:3: error: 'g_signal_connect' was not declared in this scope
   39 |   g_signal_connect(G_OBJECT(gtkWidget), "button-press-event", G_CALLBACK(Viewport_mousePress), (gpointer)this);
      |   ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:40:108: error: expected ')' before 'this'
   40 |   g_signal_connect(G_OBJECT(gtkWidget), "button-release-event", G_CALLBACK(Widget_mouseRelease), (gpointer)this);
      |                   ~                                                                                        ^~~~
      |                                                                                                            )
../hiro/core/../gtk/widget/viewport.cpp:41:98: error: expected ')' before 'this'
   41 |   g_signal_connect(G_OBJECT(gtkWidget), "drag-data-received", G_CALLBACK(Widget_drop), (gpointer)this);
      |                   ~                                                                              ^~~~
      |                                                                                                  )
../hiro/core/../gtk/widget/viewport.cpp:45:86: error: expected ')' before 'this'
   45 |   g_signal_connect(G_OBJECT(gtkWidget), "draw", G_CALLBACK(Viewport_draw), (gpointer)this);
      |                   ~                                                                  ^~~~
      |                                                                                      )
../hiro/core/../gtk/widget/viewport.cpp:47:101: error: expected ')' before 'this'
   47 |   g_signal_connect(G_OBJECT(gtkWidget), "key-press-event", G_CALLBACK(Viewport_keyPress), (gpointer)this);
      |                   ~                                                                                 ^~~~
      |                                                                                                     )
../hiro/core/../gtk/widget/viewport.cpp:48:104: error: expected ')' before 'this'
   48 |   g_signal_connect(G_OBJECT(gtkWidget), "enter-notify-event", G_CALLBACK(Widget_mouseEnter), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/viewport.cpp:49:104: error: expected ')' before 'this'
   49 |   g_signal_connect(G_OBJECT(gtkWidget), "leave-notify-event", G_CALLBACK(Widget_mouseLeave), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/viewport.cpp:50:104: error: expected ')' before 'this'
   50 |   g_signal_connect(G_OBJECT(gtkWidget), "motion-notify-event", G_CALLBACK(Widget_mouseMove), (gpointer)this);
      |                   ~                                                                                    ^~~~
      |                                                                                                        )
../hiro/core/../gtk/widget/viewport.cpp: In member function 'virtual void hiro::pViewport::destruct()':
../hiro/core/../gtk/widget/viewport.cpp:56:6: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   56 |   if(gtkWidget) gtk_widget_destroy(gtkWidget), gtkWidget = nullptr;
      |      ^~~~~~~~~
      |      pWidget
../hiro/core/../gtk/widget/viewport.cpp:56:17: error: 'gtk_widget_destroy' was not declared in this scope
   56 |   if(gtkWidget) gtk_widget_destroy(gtkWidget), gtkWidget = nullptr;
      |                 ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:57:3: error: 'gtkParent' was not declared in this scope
   57 |   gtkParent = nullptr;
      |   ^~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp: In member function 'virtual void hiro::pViewport::setFocusable(bool)':
../hiro/core/../gtk/widget/viewport.cpp:73:28: error: 'gtkWidget' was not declared in this scope; did you mean 'pWidget'?
   73 |   gtk_widget_set_can_focus(gtkWidget, focusable);
      |                            ^~~~~~~~~
      |                            pWidget
../hiro/core/../gtk/widget/viewport.cpp:73:3: error: 'gtk_widget_set_can_focus' was not declared in this scope
   73 |   gtk_widget_set_can_focus(gtkWidget, focusable);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp: At global scope:
../hiro/core/../gtk/widget/viewport.cpp:76:6: error: 'auto hiro::pViewport::_onDraw' is not a static data member of 'struct hiro::pViewport'
   76 | auto pViewport::_onDraw(cairo_t* context) -> void {
      |      ^~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:76:25: error: 'cairo_t' was not declared in this scope
   76 | auto pViewport::_onDraw(cairo_t* context) -> void {
      |                         ^~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:76:34: error: 'context' was not declared in this scope; did you mean 'ucontext'?
   76 | auto pViewport::_onDraw(cairo_t* context) -> void {
      |                                  ^~~~~~~
      |                                  ucontext
../hiro/core/../gtk/widget/viewport.cpp:76:43: error: expected ',' or ';' before '->' token
   76 | auto pViewport::_onDraw(cairo_t* context) -> void {
      |                                           ^~
../hiro/core/../gtk/widget/viewport.cpp:81:6: error: 'auto hiro::pViewport::_onExpose' is not a static data member of 'struct hiro::pViewport'
   81 | auto pViewport::_onExpose(GdkEventExpose* expose) -> void {
      |      ^~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:81:27: error: 'GdkEventExpose' was not declared in this scope
   81 | auto pViewport::_onExpose(GdkEventExpose* expose) -> void {
      |                           ^~~~~~~~~~~~~~
../hiro/core/../gtk/widget/viewport.cpp:81:43: error: 'expose' was not declared in this scope; did you mean 'export'?
   81 | auto pViewport::_onExpose(GdkEventExpose* expose) -> void {
      |                                           ^~~~~~
      |                                           export
../hiro/core/../gtk/widget/viewport.cpp:81:51: error: expected ',' or ';' before '->' token
   81 | auto pViewport::_onExpose(GdkEventExpose* expose) -> void {
      |                                                   ^~
In file included from ../hiro/core/../gtk/platform.cpp:65:
../hiro/core/../gtk/application.cpp:7:40: error: 'GLogLevelFlags' has not been declared
    7 | auto Log_Ignore(const char* logDomain, GLogLevelFlags logLevel, const char* message, void* userData) -> void {
      |                                        ^~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:10:40: error: 'GLogLevelFlags' has not been declared
   10 | auto Log_Filter(const char* logDomain, GLogLevelFlags logLevel, const char* message, void* userData) -> void {
      |                                        ^~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp: In static member function 'static bool hiro::pApplication::pendingEvents()':
../hiro/core/../gtk/application.cpp:38:10: error: 'gtk_events_pending' was not declared in this scope
   38 |   return gtk_events_pending();
      |          ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp: In static member function 'static void hiro::pApplication::processEvents()':
../hiro/core/../gtk/application.cpp:47:5: error: 'gtk_main_iteration_do' was not declared in this scope
   47 |     gtk_main_iteration_do(false);
      |     ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp: In static member function 'static void hiro::pApplication::quit()':
../hiro/core/../gtk/application.cpp:54:6: error: 'gtk_main_level' was not declared in this scope
   54 |   if(gtk_main_level()) gtk_main_quit();
      |      ^~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:54:24: error: 'gtk_main_quit' was not declared in this scope
   54 |   if(gtk_main_level()) gtk_main_quit();
      |                        ^~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp: In static member function 'static void hiro::pApplication::initialize()':
../hiro/core/../gtk/application.cpp:109:49: error: 'G_LOG_LEVEL_MASK' was not declared in this scope
  109 |   g_log_set_handler("GVFS-RemoteVolumeMonitor", G_LOG_LEVEL_MASK, Log_Ignore, nullptr);
      |                                                 ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:109:3: error: 'g_log_set_handler' was not declared in this scope
  109 |   g_log_set_handler("GVFS-RemoteVolumeMonitor", G_LOG_LEVEL_MASK, Log_Ignore, nullptr);
      |   ^~~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:115:3: error: 'gdk_set_program_class' was not declared in this scope
  115 |   gdk_set_program_class(name);
      |   ^~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:131:3: error: 'gtk_init' was not declared in this scope
  131 |   gtk_init(&argc, &argvp);
      |   ^~~~~~~~
../hiro/core/../gtk/application.cpp:132:3: error: 'GtkSettings' was not declared in this scope; did you mean 'Settings'?
  132 |   GtkSettings* gtkSettings = gtk_settings_get_default();
      |   ^~~~~~~~~~~
      |   Settings
../hiro/core/../gtk/application.cpp:132:16: error: 'gtkSettings' was not declared in this scope; did you mean 'Settings'?
  132 |   GtkSettings* gtkSettings = gtk_settings_get_default();
      |                ^~~~~~~~~~~
      |                Settings
../hiro/core/../gtk/application.cpp:132:30: error: 'gtk_settings_get_default' was not declared in this scope
  132 |   GtkSettings* gtkSettings = gtk_settings_get_default();
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:135:39: error: 'GTK_TYPE_BUTTON' was not declared in this scope
  135 |   g_type_class_unref(g_type_class_ref(GTK_TYPE_BUTTON));
      |                                       ^~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:135:22: error: 'g_type_class_ref' was not declared in this scope
  135 |   g_type_class_unref(g_type_class_ref(GTK_TYPE_BUTTON));
      |                      ^~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:135:3: error: 'g_type_class_unref' was not declared in this scope
  135 |   g_type_class_unref(g_type_class_ref(GTK_TYPE_BUTTON));
      |   ^~~~~~~~~~~~~~~~~~
../hiro/core/../gtk/application.cpp:136:3: error: 'g_object_set' was not declared in this scope
  136 |   g_object_set(gtkSettings, "gtk-button-images", true, nullptr);
      |   ^~~~~~~~~~~~
gmake: *** [../hiro/GNUmakefile:73: obj/hiro-gtk3.o] Error 1
*** Error code 2

Stop.
bmake[1]: stopped in /data/jenkins/workspace/pkgsrc-upstream-bulktest/emulators/bsnes
*** Error code 1

Stop.
bmake: stopped in /data/jenkins/workspace/pkgsrc-upstream-bulktest/emulators/bsnes