Browse Source

ThePimp: we can now save files.

git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2874 92316355-f0b4-4df1-b90c-862c8a59935f
remotes/tiles
sam 16 years ago
parent
commit
d00b031efc
14 changed files with 699 additions and 22 deletions
  1. +8
    -0
      ThePimp/MainWindow.cs
  2. +5
    -2
      ThePimp/Makefile.am
  3. +4
    -2
      ThePimp/PictureView.cs
  4. +36
    -0
      ThePimp/SaveFile.cs
  5. +5
    -0
      ThePimp/ThePimp.mdp
  6. +11
    -6
      ThePimp/ToolBox.cs
  7. +6
    -2
      ThePimp/gtk-gui/MainWindow.cs
  8. +27
    -0
      ThePimp/gtk-gui/ThePimp.PictureView.cs
  9. +77
    -0
      ThePimp/gtk-gui/ThePimp.SaveFile.cs
  10. +194
    -0
      ThePimp/gtk-gui/ThePimp.ToolBox.cs
  11. +318
    -2
      ThePimp/gtk-gui/gui.stetic
  12. +2
    -2
      pipi-sharp/Makefile.am
  13. +3
    -3
      pipi-sharp/Picture.cs
  14. +3
    -3
      pipi-sharp/pipi-sharp.mdp

+ 8
- 0
ThePimp/MainWindow.cs View File

@@ -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();
}
}

+ 5
- 2
ThePimp/Makefile.am View File

@@ -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


+ 4
- 2
ThePimp/PictureView.cs View File

@@ -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();
}


+ 36
- 0
ThePimp/SaveFile.cs View File

@@ -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);
}
}
}

+ 5
- 0
ThePimp/ThePimp.mdp View File

@@ -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" />


+ 11
- 6
ThePimp/ToolBox.cs View File

@@ -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();


+ 6
- 2
ThePimp/gtk-gui/MainWindow.cs View File

@@ -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);
}
}

+ 27
- 0
ThePimp/gtk-gui/ThePimp.PictureView.cs View File

@@ -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();
}
}
}

+ 77
- 0
ThePimp/gtk-gui/ThePimp.SaveFile.cs View File

@@ -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();
}
}
}

+ 194
- 0
ThePimp/gtk-gui/ThePimp.ToolBox.cs View File

@@ -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();
}


+ 318
- 2
ThePimp/gtk-gui/gui.stetic View File

@@ -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>

+ 2
- 2
pipi-sharp/Makefile.am View File

@@ -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:


+ 3
- 3
pipi-sharp/Picture.cs View File

@@ -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),


+ 3
- 3
pipi-sharp/pipi-sharp.mdp View File

@@ -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>

Loading…
Cancel
Save