git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2874 92316355-f0b4-4df1-b90c-862c8a59935fremotes/tiles
@@ -50,4 +50,12 @@ public partial class MainWindow: Gtk.Window | |||
{ | |||
Application.Quit (); | |||
} | |||
protected virtual void OnSaveAsActionActivated (object sender, System.EventArgs e) | |||
{ | |||
ThePimp.SaveFile save = new ThePimp.SaveFile(); | |||
ThePimp.PictureView view = notebook1.CurrentPageWidget as ThePimp.PictureView; | |||
save.Save(view.Picture); | |||
save.Destroy(); | |||
} | |||
} |
@@ -7,6 +7,8 @@ pimp_sources = \ | |||
$(srcdir)/gtk-gui/generated.cs \ | |||
$(srcdir)/OpenFile.cs \ | |||
$(srcdir)/gtk-gui/ThePimp.OpenFile.cs \ | |||
$(srcdir)/SaveFile.cs \ | |||
$(srcdir)/gtk-gui/ThePimp.SaveFile.cs \ | |||
$(srcdir)/MainWindow.cs \ | |||
$(srcdir)/gtk-gui/MainWindow.cs | |||
@@ -19,10 +21,11 @@ EXTRA_DIST = $(pimp_sources) | |||
Pimp.exe: $(pimp_sources) | |||
cp ../pipi-sharp/pipi-sharp.dll . | |||
cp ../pipi-sharp/pipi-sharp.dll.config . | |||
gmcs $(pimp_sources) -out:$@ -lib:./ \ | |||
cp ../pipi-sharp/pipi-sharp.dll.mdb . | |||
gmcs -debug $(pimp_sources) -out:$@ -lib:./ \ | |||
-pkg:gtk-sharp-2.0 -r:Mono.Posix -r:pipi-sharp.dll | |||
clean-local: | |||
rm -f pipi-sharp.dll pipi-sharp.dll.config | |||
rm -f pipi-sharp.dll.config | |||
rm -f *.exe *.dll *.mdb | |||
@@ -21,7 +21,6 @@ namespace ThePimp | |||
public class PictureArea : Gtk.DrawingArea | |||
{ | |||
private Pipi.Picture _p; | |||
private Pango.Layout _l; | |||
private Adjustment _hadj = null, _vadj = null; | |||
void HAdjust(object sender, EventArgs args) | |||
@@ -119,10 +118,13 @@ namespace ThePimp | |||
} | |||
} | |||
public class PictureView : Gtk.ScrolledWindow | |||
public partial class PictureView : Gtk.ScrolledWindow | |||
{ | |||
public readonly Picture Picture; | |||
public PictureView(Picture p) | |||
{ | |||
Picture = p; | |||
Add(new PictureArea(p)); | |||
ShowAll(); | |||
} | |||
@@ -0,0 +1,36 @@ | |||
// | |||
// The Pimp The Pathetic Image Manipulation Program | |||
// Copyright (c) 2004-2008 Sam Hocevar <sam@zoy.org> | |||
// All Rights Reserved | |||
// | |||
// $Id$ | |||
// | |||
// This library is free software. It comes without any warranty, to | |||
// the extent permitted by applicable law. You can redistribute it | |||
// and/or modify it under the terms of the Do What The Fuck You Want | |||
// To Public License, Version 2, as published by Sam Hocevar. See | |||
// http://sam.zoy.org/wtfpl/COPYING for more details. | |||
// | |||
using System; | |||
using Gtk; | |||
namespace ThePimp | |||
{ | |||
public partial class SaveFile : Gtk.Dialog | |||
{ | |||
public SaveFile() | |||
{ | |||
this.Build(); | |||
} | |||
public void Save(Pipi.Picture p) | |||
{ | |||
ResponseType rsp = (ResponseType)Run(); | |||
Hide(); | |||
if(rsp != ResponseType.Ok) | |||
return; | |||
p.Save(filechooserwidget1.Filename); | |||
} | |||
} | |||
} |
@@ -3,6 +3,7 @@ | |||
<Configuration name="Debug" ctype="DotNetProjectConfiguration"> | |||
<CustomCommands> | |||
<Command type="AfterBuild" command="cp ${CombineDir}/pipi-sharp/pipi-sharp.dll.config ${TargetDir}" workingdir="" /> | |||
<Command type="AfterBuild" command="cp ${CombineDir}/pipi-sharp/pipi-sharp.mdb ${TargetDir}" /> | |||
</CustomCommands> | |||
<Output directory="." assemblyKeyFile="." assembly="Pimp" /> | |||
<Build debugmode="True" target="Exe" /> | |||
@@ -12,6 +13,7 @@ | |||
<Configuration name="Release" ctype="DotNetProjectConfiguration"> | |||
<CustomCommands> | |||
<Command type="AfterBuild" command="cp ${CombineDir}/pipi-sharp/pipi-sharp.dll.config ${TargetDir}" /> | |||
<Command type="AfterBuild" command="cp ${CombineDir}/pipi-sharp/pipi-sharp.mdb ${TargetDir}" /> | |||
</CustomCommands> | |||
<Output directory="." assemblyKeyFile="." assembly="Pimp" /> | |||
<Build debugmode="False" target="Exe" /> | |||
@@ -33,6 +35,9 @@ | |||
<File name="gtk-gui/ThePimp.OpenFile.cs" subtype="Code" buildaction="Compile" /> | |||
<File name="ToolBox.cs" subtype="Code" buildaction="Compile" /> | |||
<File name="gtk-gui/ThePimp.ToolBox.cs" subtype="Code" buildaction="Compile" /> | |||
<File name="gtk-gui/ThePimp.PictureView.cs" subtype="Code" buildaction="Compile" /> | |||
<File name="SaveFile.cs" subtype="Code" buildaction="Compile" /> | |||
<File name="gtk-gui/ThePimp.SaveFile.cs" subtype="Code" buildaction="Compile" /> | |||
</Contents> | |||
<References> | |||
<ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" /> | |||
@@ -1,18 +1,23 @@ | |||
// ToolBox.cs created with MonoDevelop | |||
// User: sam at 12:31 05/10/2008 | |||
// | |||
// To change standard headers go to Edit->Preferences->Coding->Standard Headers | |||
// The Pimp The Pathetic Image Manipulation Program | |||
// Copyright (c) 2004-2008 Sam Hocevar <sam@zoy.org> | |||
// All Rights Reserved | |||
// | |||
// $Id$ | |||
// | |||
// This library is free software. It comes without any warranty, to | |||
// the extent permitted by applicable law. You can redistribute it | |||
// and/or modify it under the terms of the Do What The Fuck You Want | |||
// To Public License, Version 2, as published by Sam Hocevar. See | |||
// http://sam.zoy.org/wtfpl/COPYING for more details. | |||
// | |||
using System; | |||
namespace ThePimp | |||
{ | |||
public partial class ToolBox : Gtk.Bin | |||
{ | |||
public ToolBox() | |||
{ | |||
this.Build(); | |||
@@ -68,6 +68,8 @@ public partial class MainWindow { | |||
private Gtk.Action helpAction; | |||
private Gtk.Action saveAsAction; | |||
private Gtk.VBox vbox1; | |||
private Gtk.MenuBar menubar1; | |||
@@ -129,7 +131,6 @@ public partial class MainWindow { | |||
this.SaveAction.ShortLabel = Mono.Unix.Catalog.GetString("_Save"); | |||
w2.Add(this.SaveAction, null); | |||
this.SaveAsAction = new Gtk.Action("SaveAsAction", Mono.Unix.Catalog.GetString("Save _As"), null, "gtk-save-as"); | |||
this.SaveAsAction.Sensitive = false; | |||
this.SaveAsAction.ShortLabel = Mono.Unix.Catalog.GetString("Save _As"); | |||
w2.Add(this.SaveAsAction, null); | |||
this.QuitAction = new Gtk.Action("QuitAction", Mono.Unix.Catalog.GetString("_Quit"), null, "gtk-quit"); | |||
@@ -188,6 +189,8 @@ public partial class MainWindow { | |||
this.helpAction = new Gtk.Action("helpAction", null, null, "gtk-help"); | |||
this.helpAction.Sensitive = false; | |||
w2.Add(this.helpAction, null); | |||
this.saveAsAction = new Gtk.Action("saveAsAction", null, null, "gtk-save-as"); | |||
w2.Add(this.saveAsAction, null); | |||
w1.InsertActionGroup(w2, 0); | |||
this.AddAccelGroup(w1.AccelGroup); | |||
this.Name = "MainWindow"; | |||
@@ -207,7 +210,7 @@ public partial class MainWindow { | |||
w3.Expand = false; | |||
w3.Fill = false; | |||
// Container child vbox1.Gtk.Box+BoxChild | |||
w1.AddUiFromString("<ui><toolbar name='toolbar1'><toolitem action='newAction'/><toolitem action='openAction'/><toolitem action='saveAction'/><separator/><toolitem action='undoAction'/><toolitem action='redoAction'/><separator/><toolitem action='zoomInAction'/><toolitem action='zoomOutAction'/><toolitem action='zoomFitAction'/><toolitem action='zoom100Action'/><separator/><toolitem action='helpAction'/></toolbar></ui>"); | |||
w1.AddUiFromString("<ui><toolbar name='toolbar1'><toolitem action='newAction'/><toolitem action='openAction'/><toolitem action='saveAction'/><toolitem action='saveAsAction'/><separator/><toolitem action='undoAction'/><toolitem action='redoAction'/><separator/><toolitem action='zoomInAction'/><toolitem action='zoomOutAction'/><toolitem action='zoomFitAction'/><toolitem action='zoom100Action'/><separator/><toolitem action='helpAction'/></toolbar></ui>"); | |||
this.toolbar1 = ((Gtk.Toolbar)(w1.GetWidget("/toolbar1"))); | |||
this.toolbar1.Name = "toolbar1"; | |||
this.toolbar1.ShowArrow = false; | |||
@@ -292,5 +295,6 @@ public partial class MainWindow { | |||
this.openAction.Activated += new System.EventHandler(this.OnOpenActionActivated); | |||
this.OpenAction.Activated += new System.EventHandler(this.OnOpenActionActivated); | |||
this.QuitAction.Activated += new System.EventHandler(this.OnQuitActionActivated); | |||
this.saveAsAction.Activated += new System.EventHandler(this.OnSaveAsActionActivated); | |||
} | |||
} |
@@ -0,0 +1,27 @@ | |||
// ------------------------------------------------------------------------------ | |||
// <autogenerated> | |||
// This code was generated by a tool. | |||
// Mono Runtime Version: 2.0.50727.42 | |||
// | |||
// Changes to this file may cause incorrect behavior and will be lost if | |||
// the code is regenerated. | |||
// </autogenerated> | |||
// ------------------------------------------------------------------------------ | |||
namespace ThePimp { | |||
public partial class PictureView { | |||
protected virtual void Build() { | |||
Stetic.Gui.Initialize(this); | |||
// Widget ThePimp.PictureView | |||
Stetic.BinContainer.Attach(this); | |||
this.Name = "ThePimp.PictureView"; | |||
if ((this.Child != null)) { | |||
this.Child.ShowAll(); | |||
} | |||
this.Show(); | |||
} | |||
} | |||
} |
@@ -0,0 +1,77 @@ | |||
// ------------------------------------------------------------------------------ | |||
// <autogenerated> | |||
// This code was generated by a tool. | |||
// Mono Runtime Version: 2.0.50727.42 | |||
// | |||
// Changes to this file may cause incorrect behavior and will be lost if | |||
// the code is regenerated. | |||
// </autogenerated> | |||
// ------------------------------------------------------------------------------ | |||
namespace ThePimp { | |||
public partial class SaveFile { | |||
private Gtk.FileChooserWidget filechooserwidget1; | |||
private Gtk.Button buttonCancel; | |||
private Gtk.Button buttonOk; | |||
protected virtual void Build() { | |||
Stetic.Gui.Initialize(this); | |||
// Widget ThePimp.SaveFile | |||
this.Name = "ThePimp.SaveFile"; | |||
this.WindowPosition = ((Gtk.WindowPosition)(4)); | |||
this.HasSeparator = false; | |||
// Internal child ThePimp.SaveFile.VBox | |||
Gtk.VBox w1 = this.VBox; | |||
w1.Name = "dialog1_VBox"; | |||
w1.BorderWidth = ((uint)(2)); | |||
// Container child dialog1_VBox.Gtk.Box+BoxChild | |||
this.filechooserwidget1 = new Gtk.FileChooserWidget(((Gtk.FileChooserAction)(0))); | |||
this.filechooserwidget1.Name = "filechooserwidget1"; | |||
w1.Add(this.filechooserwidget1); | |||
Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(w1[this.filechooserwidget1])); | |||
w2.Position = 0; | |||
// Internal child ThePimp.SaveFile.ActionArea | |||
Gtk.HButtonBox w3 = this.ActionArea; | |||
w3.Name = "dialog1_ActionArea"; | |||
w3.Spacing = 6; | |||
w3.BorderWidth = ((uint)(5)); | |||
w3.LayoutStyle = ((Gtk.ButtonBoxStyle)(4)); | |||
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild | |||
this.buttonCancel = new Gtk.Button(); | |||
this.buttonCancel.CanDefault = true; | |||
this.buttonCancel.CanFocus = true; | |||
this.buttonCancel.Name = "buttonCancel"; | |||
this.buttonCancel.UseStock = true; | |||
this.buttonCancel.UseUnderline = true; | |||
this.buttonCancel.Label = "gtk-cancel"; | |||
this.AddActionWidget(this.buttonCancel, -6); | |||
Gtk.ButtonBox.ButtonBoxChild w4 = ((Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonCancel])); | |||
w4.Expand = false; | |||
w4.Fill = false; | |||
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild | |||
this.buttonOk = new Gtk.Button(); | |||
this.buttonOk.CanDefault = true; | |||
this.buttonOk.CanFocus = true; | |||
this.buttonOk.Name = "buttonOk"; | |||
this.buttonOk.UseStock = true; | |||
this.buttonOk.UseUnderline = true; | |||
this.buttonOk.Label = "gtk-ok"; | |||
this.AddActionWidget(this.buttonOk, -5); | |||
Gtk.ButtonBox.ButtonBoxChild w5 = ((Gtk.ButtonBox.ButtonBoxChild)(w3[this.buttonOk])); | |||
w5.Position = 1; | |||
w5.Expand = false; | |||
w5.Fill = false; | |||
if ((this.Child != null)) { | |||
this.Child.ShowAll(); | |||
} | |||
this.DefaultWidth = 400; | |||
this.DefaultHeight = 300; | |||
this.Show(); | |||
} | |||
} | |||
} |
@@ -13,11 +13,205 @@ namespace ThePimp { | |||
public partial class ToolBox { | |||
private Gtk.Table table1; | |||
private Gtk.Button button10; | |||
private Gtk.Image image5; | |||
private Gtk.Button button11; | |||
private Gtk.Image image6; | |||
private Gtk.Button button12; | |||
private Gtk.Image image9; | |||
private Gtk.Button button13; | |||
private Gtk.Image image8; | |||
private Gtk.Button button5; | |||
private Gtk.Image image1; | |||
private Gtk.Button button6; | |||
private Gtk.Image image7; | |||
private Gtk.Button button7; | |||
private Gtk.Image image3; | |||
private Gtk.Button button8; | |||
private Gtk.Image image2; | |||
private Gtk.Button button9; | |||
private Gtk.Image image4; | |||
protected virtual void Build() { | |||
Stetic.Gui.Initialize(this); | |||
// Widget ThePimp.ToolBox | |||
Stetic.BinContainer.Attach(this); | |||
this.Name = "ThePimp.ToolBox"; | |||
// Container child ThePimp.ToolBox.Gtk.Container+ContainerChild | |||
this.table1 = new Gtk.Table(((uint)(3)), ((uint)(3)), false); | |||
this.table1.Name = "table1"; | |||
this.table1.RowSpacing = ((uint)(6)); | |||
this.table1.ColumnSpacing = ((uint)(6)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button10 = new Gtk.Button(); | |||
this.button10.CanFocus = true; | |||
this.button10.Name = "button10"; | |||
// Container child button10.Gtk.Container+ContainerChild | |||
this.image5 = new Gtk.Image(); | |||
this.image5.Name = "image5"; | |||
this.image5.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-rectangle", Gtk.IconSize.Menu, 16); | |||
this.button10.Add(this.image5); | |||
this.button10.Label = null; | |||
this.table1.Add(this.button10); | |||
Gtk.Table.TableChild w2 = ((Gtk.Table.TableChild)(this.table1[this.button10])); | |||
w2.TopAttach = ((uint)(1)); | |||
w2.BottomAttach = ((uint)(2)); | |||
w2.LeftAttach = ((uint)(1)); | |||
w2.RightAttach = ((uint)(2)); | |||
w2.XOptions = ((Gtk.AttachOptions)(4)); | |||
w2.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button11 = new Gtk.Button(); | |||
this.button11.CanFocus = true; | |||
this.button11.Name = "button11"; | |||
// Container child button11.Gtk.Container+ContainerChild | |||
this.image6 = new Gtk.Image(); | |||
this.image6.Name = "image6"; | |||
this.image6.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-ellipse", Gtk.IconSize.Menu, 16); | |||
this.button11.Add(this.image6); | |||
this.button11.Label = null; | |||
this.table1.Add(this.button11); | |||
Gtk.Table.TableChild w4 = ((Gtk.Table.TableChild)(this.table1[this.button11])); | |||
w4.TopAttach = ((uint)(1)); | |||
w4.BottomAttach = ((uint)(2)); | |||
w4.LeftAttach = ((uint)(2)); | |||
w4.RightAttach = ((uint)(3)); | |||
w4.XOptions = ((Gtk.AttachOptions)(4)); | |||
w4.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button12 = new Gtk.Button(); | |||
this.button12.CanFocus = true; | |||
this.button12.Name = "button12"; | |||
// Container child button12.Gtk.Container+ContainerChild | |||
this.image9 = new Gtk.Image(); | |||
this.image9.Name = "image9"; | |||
this.image9.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_3d-color-picker", Gtk.IconSize.Menu, 16); | |||
this.button12.Add(this.image9); | |||
this.button12.Label = null; | |||
this.table1.Add(this.button12); | |||
Gtk.Table.TableChild w6 = ((Gtk.Table.TableChild)(this.table1[this.button12])); | |||
w6.TopAttach = ((uint)(2)); | |||
w6.BottomAttach = ((uint)(3)); | |||
w6.LeftAttach = ((uint)(2)); | |||
w6.RightAttach = ((uint)(3)); | |||
w6.XOptions = ((Gtk.AttachOptions)(4)); | |||
w6.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button13 = new Gtk.Button(); | |||
this.button13.CanFocus = true; | |||
this.button13.Name = "button13"; | |||
// Container child button13.Gtk.Container+ContainerChild | |||
this.image8 = new Gtk.Image(); | |||
this.image8.Name = "image8"; | |||
this.image8.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-text", Gtk.IconSize.Menu, 16); | |||
this.button13.Add(this.image8); | |||
this.button13.Label = null; | |||
this.table1.Add(this.button13); | |||
Gtk.Table.TableChild w8 = ((Gtk.Table.TableChild)(this.table1[this.button13])); | |||
w8.TopAttach = ((uint)(2)); | |||
w8.BottomAttach = ((uint)(3)); | |||
w8.LeftAttach = ((uint)(1)); | |||
w8.RightAttach = ((uint)(2)); | |||
w8.XOptions = ((Gtk.AttachOptions)(4)); | |||
w8.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button5 = new Gtk.Button(); | |||
this.button5.CanFocus = true; | |||
this.button5.Name = "button5"; | |||
// Container child button5.Gtk.Container+ContainerChild | |||
this.image1 = new Gtk.Image(); | |||
this.image1.Name = "image1"; | |||
this.image1.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_show-draw-functions", Gtk.IconSize.Menu, 16); | |||
this.button5.Add(this.image1); | |||
this.button5.Label = null; | |||
this.table1.Add(this.button5); | |||
Gtk.Table.TableChild w10 = ((Gtk.Table.TableChild)(this.table1[this.button5])); | |||
w10.XOptions = ((Gtk.AttachOptions)(4)); | |||
w10.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button6 = new Gtk.Button(); | |||
this.button6.CanFocus = true; | |||
this.button6.Name = "button6"; | |||
// Container child button6.Gtk.Container+ContainerChild | |||
this.image7 = new Gtk.Image(); | |||
this.image7.Name = "image7"; | |||
this.image7.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-polygon", Gtk.IconSize.Menu, 16); | |||
this.button6.Add(this.image7); | |||
this.button6.Label = null; | |||
this.table1.Add(this.button6); | |||
Gtk.Table.TableChild w12 = ((Gtk.Table.TableChild)(this.table1[this.button6])); | |||
w12.TopAttach = ((uint)(2)); | |||
w12.BottomAttach = ((uint)(3)); | |||
w12.XOptions = ((Gtk.AttachOptions)(4)); | |||
w12.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button7 = new Gtk.Button(); | |||
this.button7.CanFocus = true; | |||
this.button7.Name = "button7"; | |||
// Container child button7.Gtk.Container+ContainerChild | |||
this.image3 = new Gtk.Image(); | |||
this.image3.Name = "image3"; | |||
this.image3.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-clear", Gtk.IconSize.Menu, 16); | |||
this.button7.Add(this.image3); | |||
this.button7.Label = null; | |||
this.table1.Add(this.button7); | |||
Gtk.Table.TableChild w14 = ((Gtk.Table.TableChild)(this.table1[this.button7])); | |||
w14.LeftAttach = ((uint)(2)); | |||
w14.RightAttach = ((uint)(3)); | |||
w14.XOptions = ((Gtk.AttachOptions)(4)); | |||
w14.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button8 = new Gtk.Button(); | |||
this.button8.CanFocus = true; | |||
this.button8.Name = "button8"; | |||
// Container child button8.Gtk.Container+ContainerChild | |||
this.image2 = new Gtk.Image(); | |||
this.image2.Name = "image2"; | |||
this.image2.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_insert-fields-author", Gtk.IconSize.Menu, 16); | |||
this.button8.Add(this.image2); | |||
this.button8.Label = null; | |||
this.table1.Add(this.button8); | |||
Gtk.Table.TableChild w16 = ((Gtk.Table.TableChild)(this.table1[this.button8])); | |||
w16.LeftAttach = ((uint)(1)); | |||
w16.RightAttach = ((uint)(2)); | |||
w16.XOptions = ((Gtk.AttachOptions)(4)); | |||
w16.YOptions = ((Gtk.AttachOptions)(4)); | |||
// Container child table1.Gtk.Table+TableChild | |||
this.button9 = new Gtk.Button(); | |||
this.button9.CanFocus = true; | |||
this.button9.Name = "button9"; | |||
// Container child button9.Gtk.Container+ContainerChild | |||
this.image4 = new Gtk.Image(); | |||
this.image4.Name = "image4"; | |||
this.image4.Pixbuf = Stetic.IconLoader.LoadIcon(this, "stock_draw-line", Gtk.IconSize.Menu, 16); | |||
this.button9.Add(this.image4); | |||
this.button9.Label = null; | |||
this.table1.Add(this.button9); | |||
Gtk.Table.TableChild w18 = ((Gtk.Table.TableChild)(this.table1[this.button9])); | |||
w18.TopAttach = ((uint)(1)); | |||
w18.BottomAttach = ((uint)(2)); | |||
w18.XOptions = ((Gtk.AttachOptions)(4)); | |||
w18.YOptions = ((Gtk.AttachOptions)(4)); | |||
this.Add(this.table1); | |||
if ((this.Child != null)) { | |||
this.Child.ShowAll(); | |||
} | |||
@@ -75,7 +75,6 @@ | |||
<action id="SaveAsAction"> | |||
<property name="Type">Action</property> | |||
<property name="Label" translatable="yes">Save _As</property> | |||
<property name="Sensitive">False</property> | |||
<property name="ShortLabel" translatable="yes">Save _As</property> | |||
<property name="StockId">gtk-save-as</property> | |||
</action> | |||
@@ -184,6 +183,12 @@ | |||
<property name="Sensitive">False</property> | |||
<property name="StockId">gtk-help</property> | |||
</action> | |||
<action id="saveAsAction"> | |||
<property name="Type">Action</property> | |||
<property name="Label" translatable="yes" /> | |||
<property name="StockId">gtk-save-as</property> | |||
<signal name="Activated" handler="OnSaveAsActionActivated" /> | |||
</action> | |||
</action-group> | |||
<property name="MemberName" /> | |||
<property name="Title" translatable="yes">The Pimp</property> | |||
@@ -236,6 +241,7 @@ | |||
<node type="Toolitem" action="newAction" /> | |||
<node type="Toolitem" action="openAction" /> | |||
<node type="Toolitem" action="saveAction" /> | |||
<node type="Toolitem" action="saveAsAction" /> | |||
<node type="Separator" /> | |||
<node type="Toolitem" action="undoAction" /> | |||
<node type="Toolitem" action="redoAction" /> | |||
@@ -432,7 +438,253 @@ | |||
<widget class="Gtk.Bin" id="ThePimp.ToolBox" design-size="300 300"> | |||
<property name="MemberName" /> | |||
<child> | |||
<placeholder /> | |||
<widget class="Gtk.Table" id="table1"> | |||
<property name="MemberName" /> | |||
<property name="NRows">3</property> | |||
<property name="NColumns">3</property> | |||
<property name="RowSpacing">6</property> | |||
<property name="ColumnSpacing">6</property> | |||
<child> | |||
<widget class="Gtk.Button" id="button10"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image5"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_draw-rectangle Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="TopAttach">1</property> | |||
<property name="BottomAttach">2</property> | |||
<property name="LeftAttach">1</property> | |||
<property name="RightAttach">2</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button11"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image6"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_draw-ellipse Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="TopAttach">1</property> | |||
<property name="BottomAttach">2</property> | |||
<property name="LeftAttach">2</property> | |||
<property name="RightAttach">3</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button12"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image9"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_3d-color-picker Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="TopAttach">2</property> | |||
<property name="BottomAttach">3</property> | |||
<property name="LeftAttach">2</property> | |||
<property name="RightAttach">3</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button13"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image8"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_draw-text Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="TopAttach">2</property> | |||
<property name="BottomAttach">3</property> | |||
<property name="LeftAttach">1</property> | |||
<property name="RightAttach">2</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button5"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image1"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_show-draw-functions Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button6"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image7"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_draw-polygon Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="TopAttach">2</property> | |||
<property name="BottomAttach">3</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button7"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image3"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:gtk-clear Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="LeftAttach">2</property> | |||
<property name="RightAttach">3</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button8"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image2"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_insert-fields-author Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="LeftAttach">1</property> | |||
<property name="RightAttach">2</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="button9"> | |||
<property name="MemberName" /> | |||
<property name="CanFocus">True</property> | |||
<property name="Type">Custom</property> | |||
<child> | |||
<widget class="Gtk.Image" id="image4"> | |||
<property name="MemberName" /> | |||
<property name="Pixbuf">stock:stock_draw-line Menu</property> | |||
</widget> | |||
</child> | |||
</widget> | |||
<packing> | |||
<property name="TopAttach">1</property> | |||
<property name="BottomAttach">2</property> | |||
<property name="AutoSize">True</property> | |||
<property name="XOptions">Fill</property> | |||
<property name="YOptions">Fill</property> | |||
<property name="XExpand">False</property> | |||
<property name="XFill">True</property> | |||
<property name="XShrink">False</property> | |||
<property name="YExpand">False</property> | |||
<property name="YFill">True</property> | |||
<property name="YShrink">False</property> | |||
</packing> | |||
</child> | |||
</widget> | |||
</child> | |||
</widget> | |||
<widget class="Gtk.Bin" id="ThePimp.PictureView" design-size="300 300"> | |||
@@ -441,4 +693,68 @@ | |||
<placeholder /> | |||
</child> | |||
</widget> | |||
<widget class="Gtk.Dialog" id="ThePimp.SaveFile" design-size="400 300"> | |||
<property name="MemberName" /> | |||
<property name="WindowPosition">CenterOnParent</property> | |||
<property name="Buttons">2</property> | |||
<property name="HelpButton">False</property> | |||
<property name="HasSeparator">False</property> | |||
<child internal-child="VBox"> | |||
<widget class="Gtk.VBox" id="dialog1_VBox"> | |||
<property name="MemberName" /> | |||
<property name="BorderWidth">2</property> | |||
<child> | |||
<widget class="Gtk.FileChooserWidget" id="filechooserwidget1"> | |||
<property name="MemberName" /> | |||
</widget> | |||
<packing> | |||
<property name="Position">0</property> | |||
<property name="AutoSize">True</property> | |||
</packing> | |||
</child> | |||
</widget> | |||
</child> | |||
<child internal-child="ActionArea"> | |||
<widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> | |||
<property name="MemberName" /> | |||
<property name="Spacing">6</property> | |||
<property name="BorderWidth">5</property> | |||
<property name="Size">2</property> | |||
<property name="LayoutStyle">End</property> | |||
<child> | |||
<widget class="Gtk.Button" id="buttonCancel"> | |||
<property name="MemberName" /> | |||
<property name="CanDefault">True</property> | |||
<property name="CanFocus">True</property> | |||
<property name="UseStock">True</property> | |||
<property name="Type">StockItem</property> | |||
<property name="StockId">gtk-cancel</property> | |||
<property name="ResponseId">-6</property> | |||
<property name="label">gtk-cancel</property> | |||
</widget> | |||
<packing> | |||
<property name="Expand">False</property> | |||
<property name="Fill">False</property> | |||
</packing> | |||
</child> | |||
<child> | |||
<widget class="Gtk.Button" id="buttonOk"> | |||
<property name="MemberName" /> | |||
<property name="CanDefault">True</property> | |||
<property name="CanFocus">True</property> | |||
<property name="UseStock">True</property> | |||
<property name="Type">StockItem</property> | |||
<property name="StockId">gtk-ok</property> | |||
<property name="ResponseId">-5</property> | |||
<property name="label">gtk-ok</property> | |||
</widget> | |||
<packing> | |||
<property name="Position">1</property> | |||
<property name="Expand">False</property> | |||
<property name="Fill">False</property> | |||
</packing> | |||
</child> | |||
</widget> | |||
</child> | |||
</widget> | |||
</stetic-interface> |
@@ -19,10 +19,10 @@ EXTRA_DIST = $(pipi_sources) $(test_sources) \ | |||
pipi-sharp.pc.in pipi-sharp.dll.config.in | |||
pipi-sharp.dll: $(pipi_sources) | |||
gmcs -unsafe $(pipi_sources) -out:$@ -target:library | |||
gmcs -debug -unsafe $(pipi_sources) -out:$@ -target:library | |||
test.exe: $(test_sources) pipi-sharp.dll | |||
gmcs $(test_sources) -out:$@ -lib:./ \ | |||
gmcs -debug $(test_sources) -out:$@ -lib:./ \ | |||
-r:./pipi-sharp.dll | |||
clean-local: | |||
@@ -43,10 +43,10 @@ namespace Pipi | |||
[DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl), | |||
SuppressUnmanagedCodeSecurity] | |||
private static extern IntPtr pipi_save(IntPtr p, string s); | |||
public void Save(string s) | |||
private static extern int pipi_save(IntPtr p, string s); | |||
public int Save(string s) | |||
{ | |||
_picture = pipi_save(_picture, s); | |||
return pipi_save(_picture, s); | |||
} | |||
[DllImport("libpipi.dll", CallingConvention=CallingConvention.Cdecl), | |||
@@ -4,13 +4,13 @@ | |||
<Output directory="." assembly="pipi-sharp" /> | |||
<Build debugmode="True" target="Library" /> | |||
<Execution runwithwarnings="True" consolepause="False" runtime="MsNet" clr-version="Net_2_0" /> | |||
<CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> | |||
<CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="True" generateoverflowchecks="True" definesymbols="DEBUG" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> | |||
</Configuration> | |||
<Configuration name="Release" ctype="DotNetProjectConfiguration"> | |||
<Output directory="." assembly="pipi-sharp" /> | |||
<Build debugmode="False" target="Library" /> | |||
<Execution runwithwarnings="True" consolepause="False" runtime="MsNet" clr-version="Net_2_0" /> | |||
<CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> | |||
<CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="True" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" /> | |||
</Configuration> | |||
</Configurations> | |||
<Contents> | |||
@@ -21,4 +21,4 @@ | |||
<References> | |||
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> | |||
</References> | |||
</Project> | |||
</Project> |