Exemplo n.º 1
0
        public static string GtkSave(IntPtr parent, FileDialogFilters filters)
        {
            if (!gtk_init_check(IntPtr.Zero, IntPtr.Zero))
            {
                throw new Exception();
            }
            var dlg = gtk_file_chooser_dialog_new("Save File", IntPtr.Zero,
                                                  GTK_FILE_CHOOSER_ACTION_SAVE,
                                                  IntPtr.Zero);

            gtk_dialog_add_button(dlg, "_Cancel", GTK_RESPONSE_CANCEL);
            gtk_dialog_add_button(dlg, "_Accept", GTK_RESPONSE_ACCEPT);
            SetFilters(dlg, filters);
            gtk_widget_realize(dlg);
            XSetTransientForHint(gdk_x11_get_default_xdisplay(),
                                 gdk_x11_drawable_get_xid(gtk_widget_get_window(dlg)), parent);
            string result = null;

            if (gtk_dialog_run(dlg) == GTK_RESPONSE_ACCEPT)
            {
                result = UnsafeHelpers.PtrToStringUTF8(gtk_file_chooser_get_filename(dlg));
            }
            WaitCleanup();
            gtk_widget_destroy(dlg);
            WaitCleanup();
            return(result);
        }
Exemplo n.º 2
0
        public Dictionary <string, object> DoString(string str, string name = "[string]")
        {
            if (!thn_compile(str, name, out IntPtr buf, out int sz))
            {
                var err       = thn_geterror();
                var errstring = UnsafeHelpers.PtrToStringUTF8(err);
                thn_free(err);
                throw new Exception(errstring);
            }
            var compiled = new byte[sz];

            Marshal.Copy(buf, compiled, 0, sz);
            thn_free(buf);
            using (var stream = new MemoryStream(compiled))
            {
                LuaPrototype p;
                if (!Undump.Load(stream, out p))
                {
                    throw new Exception("Undump failed");
                }
                var runtime = new LuaBinaryRuntime(p);
                runtime.Env = Env;
                runtime.Run();
                return(runtime.Globals);
            }
        }
Exemplo n.º 3
0
 public static string GetString(this Encoding encoding, byte *ptr, int length)
 {
     if (encoding == Encoding.UTF8)
     {
         return(UnsafeHelpers.PtrToStringUTF8((IntPtr)ptr, length));
     }
     throw new Exception("Invalid encoding GetString(byte*,int)");
 }
        public string GetText()
        {
            var ptr = igExtTextEditorGetText(textedit);
            var str = UnsafeHelpers.PtrToStringUTF8(ptr);

            igExtFree(ptr);
            return(str);
        }
Exemplo n.º 5
0
        public static string GtkFolder()
        {
            if (!gtk_init_check(IntPtr.Zero, IntPtr.Zero))
            {
                throw new Exception();
            }
            var dlg = gtk_file_chooser_dialog_new("Open Directory", IntPtr.Zero,
                                                  GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
                                                  IntPtr.Zero);

            gtk_dialog_add_button(dlg, "_Cancel", GTK_RESPONSE_CANCEL);
            gtk_dialog_add_button(dlg, "_Accept", GTK_RESPONSE_ACCEPT);
            string result = null;

            if (gtk_dialog_run_HACK(dlg) == GTK_RESPONSE_ACCEPT)
            {
                result = UnsafeHelpers.PtrToStringUTF8(gtk_file_chooser_get_filename(dlg));
            }
            WaitCleanup();
            gtk_widget_destroy(dlg);
            WaitCleanup();
            return(result);
        }
Exemplo n.º 6
0
        public static string GtkSave(FileDialogFilters filters)
        {
            if (!gtk_init_check(IntPtr.Zero, IntPtr.Zero))
            {
                throw new Exception();
            }
            var dlg = gtk_file_chooser_dialog_new("Save File", IntPtr.Zero,
                                                  GTK_FILE_CHOOSER_ACTION_SAVE,
                                                  IntPtr.Zero);

            gtk_dialog_add_button(dlg, "_Cancel", GTK_RESPONSE_CANCEL);
            gtk_dialog_add_button(dlg, "_Accept", GTK_RESPONSE_ACCEPT);
            SetFilters(dlg, filters);
            string result = null;

            if (gtk_dialog_run_HACK(dlg) == GTK_RESPONSE_ACCEPT)
            {
                result = UnsafeHelpers.PtrToStringUTF8(gtk_file_chooser_get_filename(dlg));
            }
            WaitCleanup();
            gtk_widget_destroy(dlg);
            WaitCleanup();
            return(result);
        }
Exemplo n.º 7
0
 static unsafe void SetClipboardText(IntPtr userdata, IntPtr text)
 {
     instance.game.SetClipboardText(UnsafeHelpers.PtrToStringUTF8(text));
 }
Exemplo n.º 8
0
 public string GetText()
 {
     return(UnsafeHelpers.PtrToStringUTF8(Pointer, Size));
 }