github.com/secoba/wails/v2@v2.6.4/internal/frontend/desktop/linux/window.h (about)

     1  #ifndef window_h
     2  #define window_h
     3  
     4  #include <JavaScriptCore/JavaScript.h>
     5  #include <gtk/gtk.h>
     6  #include <webkit2/webkit2.h>
     7  #include <stdio.h>
     8  #include <limits.h>
     9  #include <stdint.h>
    10  
    11  typedef struct DragOptions
    12  {
    13      void *webview;
    14      GtkWindow *mainwindow;
    15  } DragOptions;
    16  
    17  typedef struct ResizeOptions
    18  {
    19      void *webview;
    20      GtkWindow *mainwindow;
    21      GdkWindowEdge edge;
    22  } ResizeOptions;
    23  
    24  typedef struct JSCallback
    25  {
    26      void *webview;
    27      char *script;
    28  } JSCallback;
    29  
    30  typedef struct MessageDialogOptions
    31  {
    32      void *window;
    33      char *title;
    34      char *message;
    35      int messageType;
    36  } MessageDialogOptions;
    37  
    38  typedef struct OpenFileDialogOptions
    39  {
    40      GtkWindow *window;
    41      char *title;
    42      char *defaultFilename;
    43      char *defaultDirectory;
    44      int createDirectories;
    45      int multipleFiles;
    46      int showHiddenFiles;
    47      GtkFileChooserAction action;
    48      GtkFileFilter **filters;
    49  } OpenFileDialogOptions;
    50  
    51  typedef struct RGBAOptions
    52  {
    53      uint8_t r;
    54      uint8_t g;
    55      uint8_t b;
    56      uint8_t a;
    57      void *webview;
    58      void *webviewBox;
    59      gboolean windowIsTranslucent;
    60  } RGBAOptions;
    61  
    62  typedef struct SetTitleArgs
    63  {
    64      GtkWindow *window;
    65      char *title;
    66  } SetTitleArgs;
    67  
    68  typedef struct SetPositionArgs
    69  {
    70      int x;
    71      int y;
    72      void *window;
    73  } SetPositionArgs;
    74  
    75  void ExecuteOnMainThread(void *f, gpointer jscallback);
    76  
    77  GtkWidget *GTKWIDGET(void *pointer);
    78  GtkWindow *GTKWINDOW(void *pointer);
    79  GtkContainer *GTKCONTAINER(void *pointer);
    80  GtkBox *GTKBOX(void *pointer);
    81  
    82  // window
    83  ulong SetupInvokeSignal(void *contentManager);
    84  
    85  void SetWindowIcon(GtkWindow *window, const guchar *buf, gsize len);
    86  void SetWindowTransparency(GtkWidget *widget);
    87  void SetBackgroundColour(void *data);
    88  void SetTitle(GtkWindow *window, char *title);
    89  void SetPosition(void *window, int x, int y);
    90  void SetMinMaxSize(GtkWindow *window, int min_width, int min_height, int max_width, int max_height);
    91  void DisableContextMenu(void *webview);
    92  void ConnectButtons(void *webview);
    93  
    94  int IsFullscreen(GtkWidget *widget);
    95  int IsMaximised(GtkWidget *widget);
    96  int IsMinimised(GtkWidget *widget);
    97  
    98  gboolean Center(gpointer data);
    99  gboolean Show(gpointer data);
   100  gboolean Hide(gpointer data);
   101  gboolean Maximise(gpointer data);
   102  gboolean UnMaximise(gpointer data);
   103  gboolean Minimise(gpointer data);
   104  gboolean UnMinimise(gpointer data);
   105  gboolean Fullscreen(gpointer data);
   106  gboolean UnFullscreen(gpointer data);
   107  
   108  // WebView
   109  GtkWidget *SetupWebview(void *contentManager, GtkWindow *window, int hideWindowOnClose, int gpuPolicy);
   110  void LoadIndex(void *webview, char *url);
   111  void DevtoolsEnabled(void *webview, int enabled, bool showInspector);
   112  void ExecuteJS(void *data);
   113  
   114  // Drag
   115  void StartDrag(void *webview, GtkWindow *mainwindow);
   116  void StartResize(void *webview, GtkWindow *mainwindow, GdkWindowEdge edge);
   117  
   118  // Dialog
   119  void MessageDialog(void *data);
   120  GtkFileFilter **AllocFileFilterArray(size_t ln);
   121  void Opendialog(void *data);
   122  
   123  // Inspector
   124  void sendShowInspectorMessage();
   125  void ShowInspector(void *webview);
   126  void InstallF12Hotkey(void *window);
   127  
   128  #endif /* window_h */