From 5fabaace5ee8245372bfaacd42fc6d1a4b57d4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= Date: Thu, 27 Mar 2008 15:59:26 +0000 Subject: [PATCH] * glib/Program.cs: Add new static class for utility property, moving the code to call g_set_prgname() from gtk/Application.cs to here, and changing return value of g_set_program_name from bool to void. * gtk/Application.cs: Use Program.Name as a replacement of calling the native function g_set_prgname(). * glib/Makefile.am: add Program.cs. (Patch reviewed by mkestner) svn path=/trunk/gtk-sharp/; revision=99134 --- ChangeLog | 9 ++++++++ glib/Makefile.am | 1 + glib/Program.cs | 53 ++++++++++++++++++++++++++++++++++++++++++++++ gtk/Application.cs | 8 +------ 4 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 glib/Program.cs diff --git a/ChangeLog b/ChangeLog index 02db63f16..6c19c3b7b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-03-27 Andres G. Aragoneses + + * glib/Program.cs: Add new static class for utility property, moving + the code to call g_set_prgname() from gtk/Application.cs to here, + and changing return value of g_set_program_name from bool to void. + * gtk/Application.cs: Use Program.Name as a replacement of + calling the native function g_set_prgname(). + * glib/Makefile.am: add Program.cs. + 2008-03-21 Mike Kestner * bootstrap-2.12: bump svn version diff --git a/glib/Makefile.am b/glib/Makefile.am index 4239cba73..be60955ef 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -53,6 +53,7 @@ sources = \ Object.cs \ ObjectManager.cs \ Opaque.cs \ + Program.cs \ PropertyAttribute.cs \ Signal.cs \ SignalArgs.cs \ diff --git a/glib/Program.cs b/glib/Program.cs new file mode 100644 index 000000000..f946ea4c7 --- /dev/null +++ b/glib/Program.cs @@ -0,0 +1,53 @@ +// GLib.Program.cs - GProgram class implementation +// +// Author: Andres G. Aragoneses +// +// Copyright (c) 2008 Novell, Inc +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +namespace GLib { + + using System; + using System.Text; + using System.Runtime.InteropServices; + + public class Program + { + + //this is a static class + private Program () + { + } + + public static string Name { + get { + return GLib.Marshaller.PtrToStringGFree(g_get_prgname()); + } + set { + IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (value); + g_set_prgname (native_name); + GLib.Marshaller.Free (native_name); + } + } + + [DllImport("libglib-2.0-0.dll")] + static extern void g_set_prgname (IntPtr name); + + [DllImport("libglib-2.0-0.dll")] + static extern IntPtr g_get_prgname (); + } +} diff --git a/gtk/Application.cs b/gtk/Application.cs index 398ec26ca..9beddc2be 100755 --- a/gtk/Application.cs +++ b/gtk/Application.cs @@ -39,15 +39,9 @@ namespace Gtk { [DllImport("libgtk-win32-2.0-0.dll")] static extern bool gtk_init_check (ref int argc, ref IntPtr argv); - [DllImport("libglib-2.0-0.dll")] - static extern bool g_set_prgname (IntPtr name); - static void SetPrgname () { - string name = System.IO.Path.GetFileNameWithoutExtension (Environment.GetCommandLineArgs () [0]); - IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name); - g_set_prgname (native_name); - GLib.Marshaller.Free (native_name); + GLib.Program.Name = System.IO.Path.GetFileNameWithoutExtension (Environment.GetCommandLineArgs () [0]); } public static void Init ()