2003-10-30 Daniel Kornhauser Eisenberg <dkor@alum.mit.edu>
* sample/GtkDemo/DemoApplicationWindow.cs : New sample, Unfinished, 5% Done
* sample/GtkDemo/DemoButtonBox.cs : New sample,
* sample/GtkDemo/DemoColorSelection.cs : New sample,
* sample/GtkDemo/DemoDialog.cs : New sample,
* sample/GtkDemo/DemoDrawingArea.cs : New sample,
* sample/GtkDemo/DemoEditableCells.cs : New sample, Needs clean up
* sample/GtkDemo/DemoImages.cs : New sample, Unfinished, 75% Done
* sample/GtkDemo/DemoItemFactory.cs : New sample, Unfinished, 5% Done
* sample/GtkDemo/DemoListStore.cs : New sample,
* sample/GtkDemo/DemoMain.cs : New sample, Unifnished, 60% Done
* sample/GtkDemo/DemoMenus.cs : New sample,
* sample/GtkDemo/DemoPanes.cs : New sample,
* sample/GtkDemo/DemoPixbuf.cs : New sample, Needs clean up
* sample/GtkDemo/DemoSizeGroup.cs : New sample,
* sample/GtkDemo/DemoStockBrowser.cs : New sample, Unfinished, 20% Done
* sample/GtkDemo/DemoTextView.cs : New sample, Unfinished, 99% Done
* sample/GtkDemo/DemoTreeStore.cs : New sample, Unfinished, 95% Done
* sample/GtkDemo/images : Several Images for the samples
* sample/GtkDemo/Makefile : Very simple Makefile
* sample/GtkDemo/README : Mentions explicitely unfinished state of port
svn path=/trunk/gtk-sharp/; revision=19489
2003-10-30 23:57:41 +00:00
|
|
|
//
|
|
|
|
// DemoColorSelection.cs, port of colorsel.c from gtk-demo
|
|
|
|
//
|
|
|
|
// Author: Daniel Kornhauser <dkor@alum.mit.edu>
|
|
|
|
//
|
|
|
|
// Copyright (C) 2003, Ximian Inc.
|
|
|
|
|
|
|
|
/*
|
|
|
|
*
|
|
|
|
* GtkColorSelection lets the user choose a color. GtkColorSelectionDialog is
|
|
|
|
* a prebuilt dialog containing a GtkColorSelection.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
using Gdk;
|
|
|
|
using Gtk;
|
|
|
|
|
|
|
|
|
|
|
|
namespace GtkDemo
|
|
|
|
{
|
|
|
|
public class DemoColorSelection
|
|
|
|
{
|
|
|
|
private Gtk.Window window ;
|
|
|
|
private Gdk.Color color;
|
|
|
|
private ColorSelectionDialog colorSelectionDialog;
|
|
|
|
private Gtk.DrawingArea drawingArea;
|
|
|
|
|
|
|
|
public DemoColorSelection ()
|
|
|
|
{
|
|
|
|
window = new Gtk.Window ("Color Selection");
|
|
|
|
window.DeleteEvent += new DeleteEventHandler (WindowDelete);
|
|
|
|
window.BorderWidth = 8;
|
|
|
|
VBox vbox = new VBox (false,8);
|
|
|
|
vbox.BorderWidth = 8;
|
|
|
|
window.Add (vbox);
|
|
|
|
|
|
|
|
// Create the color swatch area
|
|
|
|
Frame frame = new Frame ();
|
|
|
|
frame.ShadowType = ShadowType.In;
|
|
|
|
vbox.PackStart (frame, true, true, 0);
|
|
|
|
|
|
|
|
drawingArea = new DrawingArea ();
|
|
|
|
drawingArea.ExposeEvent += new ExposeEventHandler (ExposeEventCallback);
|
|
|
|
// set a minimum size
|
|
|
|
drawingArea.SetSizeRequest (200,200);
|
|
|
|
// set the color
|
|
|
|
color = new Gdk.Color (0, 0, 0xff);
|
|
|
|
drawingArea.ModifyBg (StateType.Normal, color);
|
|
|
|
frame.Add (drawingArea);
|
|
|
|
|
|
|
|
Alignment alignment = new Alignment (1.0f, 0.5f, 0.0f, 0.0f);
|
|
|
|
Button button = new Button ("_Change the above color");
|
|
|
|
button.Clicked += new EventHandler (ChangeColorCallback);
|
|
|
|
alignment.Add (button);
|
|
|
|
vbox.PackStart (alignment);
|
|
|
|
|
|
|
|
window.ShowAll ();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void WindowDelete (object o, DeleteEventArgs args)
|
|
|
|
{
|
|
|
|
window.Hide ();
|
|
|
|
window.Destroy ();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Expose callback for the drawing area
|
|
|
|
private void ExposeEventCallback (object o, ExposeEventArgs args)
|
|
|
|
{
|
|
|
|
EventExpose eventExpose = args.Event;
|
|
|
|
Gdk.Window window = eventExpose.window;
|
2004-02-10 16:04:50 +00:00
|
|
|
Rectangle area = eventExpose.Area;
|
2003-10-30 Daniel Kornhauser Eisenberg <dkor@alum.mit.edu>
* sample/GtkDemo/DemoApplicationWindow.cs : New sample, Unfinished, 5% Done
* sample/GtkDemo/DemoButtonBox.cs : New sample,
* sample/GtkDemo/DemoColorSelection.cs : New sample,
* sample/GtkDemo/DemoDialog.cs : New sample,
* sample/GtkDemo/DemoDrawingArea.cs : New sample,
* sample/GtkDemo/DemoEditableCells.cs : New sample, Needs clean up
* sample/GtkDemo/DemoImages.cs : New sample, Unfinished, 75% Done
* sample/GtkDemo/DemoItemFactory.cs : New sample, Unfinished, 5% Done
* sample/GtkDemo/DemoListStore.cs : New sample,
* sample/GtkDemo/DemoMain.cs : New sample, Unifnished, 60% Done
* sample/GtkDemo/DemoMenus.cs : New sample,
* sample/GtkDemo/DemoPanes.cs : New sample,
* sample/GtkDemo/DemoPixbuf.cs : New sample, Needs clean up
* sample/GtkDemo/DemoSizeGroup.cs : New sample,
* sample/GtkDemo/DemoStockBrowser.cs : New sample, Unfinished, 20% Done
* sample/GtkDemo/DemoTextView.cs : New sample, Unfinished, 99% Done
* sample/GtkDemo/DemoTreeStore.cs : New sample, Unfinished, 95% Done
* sample/GtkDemo/images : Several Images for the samples
* sample/GtkDemo/Makefile : Very simple Makefile
* sample/GtkDemo/README : Mentions explicitely unfinished state of port
svn path=/trunk/gtk-sharp/; revision=19489
2003-10-30 23:57:41 +00:00
|
|
|
|
|
|
|
window.DrawRectangle (drawingArea.Style.BackgroundGC(StateType.Normal),
|
|
|
|
true,
|
2004-02-10 16:04:50 +00:00
|
|
|
area.X, area.Y,
|
|
|
|
area.Width, area.Height);
|
2004-02-10 20:35:40 +00:00
|
|
|
args.RetVal = true;
|
2003-10-30 Daniel Kornhauser Eisenberg <dkor@alum.mit.edu>
* sample/GtkDemo/DemoApplicationWindow.cs : New sample, Unfinished, 5% Done
* sample/GtkDemo/DemoButtonBox.cs : New sample,
* sample/GtkDemo/DemoColorSelection.cs : New sample,
* sample/GtkDemo/DemoDialog.cs : New sample,
* sample/GtkDemo/DemoDrawingArea.cs : New sample,
* sample/GtkDemo/DemoEditableCells.cs : New sample, Needs clean up
* sample/GtkDemo/DemoImages.cs : New sample, Unfinished, 75% Done
* sample/GtkDemo/DemoItemFactory.cs : New sample, Unfinished, 5% Done
* sample/GtkDemo/DemoListStore.cs : New sample,
* sample/GtkDemo/DemoMain.cs : New sample, Unifnished, 60% Done
* sample/GtkDemo/DemoMenus.cs : New sample,
* sample/GtkDemo/DemoPanes.cs : New sample,
* sample/GtkDemo/DemoPixbuf.cs : New sample, Needs clean up
* sample/GtkDemo/DemoSizeGroup.cs : New sample,
* sample/GtkDemo/DemoStockBrowser.cs : New sample, Unfinished, 20% Done
* sample/GtkDemo/DemoTextView.cs : New sample, Unfinished, 99% Done
* sample/GtkDemo/DemoTreeStore.cs : New sample, Unfinished, 95% Done
* sample/GtkDemo/images : Several Images for the samples
* sample/GtkDemo/Makefile : Very simple Makefile
* sample/GtkDemo/README : Mentions explicitely unfinished state of port
svn path=/trunk/gtk-sharp/; revision=19489
2003-10-30 23:57:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void ChangeColorCallback (object o, EventArgs args)
|
|
|
|
{
|
|
|
|
colorSelectionDialog = new ColorSelectionDialog ("Changing color");
|
|
|
|
colorSelectionDialog.TransientFor = window;
|
|
|
|
colorSelectionDialog.ColorSelection.PreviousColor = color;
|
|
|
|
colorSelectionDialog.ColorSelection.CurrentColor = color;
|
|
|
|
colorSelectionDialog.ColorSelection.HasPalette = true;
|
|
|
|
|
|
|
|
colorSelectionDialog.CancelButton.Clicked += new EventHandler (Color_Selection_Cancel);
|
|
|
|
colorSelectionDialog.OkButton.Clicked += new EventHandler (Color_Selection_OK);
|
|
|
|
|
|
|
|
colorSelectionDialog.ShowAll();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void Color_Selection_OK (object o, EventArgs args)
|
|
|
|
{
|
|
|
|
Gdk.Color selected = colorSelectionDialog.ColorSelection.CurrentColor;
|
|
|
|
drawingArea.ModifyBg (StateType.Normal, selected);
|
|
|
|
colorSelectionDialog.Destroy ();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void Color_Selection_Cancel (object o, EventArgs args)
|
|
|
|
{
|
|
|
|
colorSelectionDialog.Destroy ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|