示例#1
0
            public Loader(PeriodicTableLogic logic, GtkWindow mainWindow)
            {
                GladeXml dlg_loading = new GladeXml(null, "loader.glade", "loaderWindow", null);

                dlg_loading.Autoconnect(this);
                this.logic           = logic;
                loaderWindow.Hidden += new EventHandler(delegate(object sender, EventArgs e)
                {
                    if (logic.IsInit)
                    {
                        Application.Invoke(delegate(object sender2, EventArgs e2) { mainWindow.ShowAll(); });
                    }
                    else
                    {
                        MessageDialog md = new MessageDialog(mainWindow, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, "Periodic Table not loaded.  Program will now exit.");
                        md.Run();
                        md.Destroy();
                        Application.Quit();
                    }
                });
                loaderWindow.DeleteEvent += new DeleteEventHandler(delegate(object sender, DeleteEventArgs e)
                {
                    loaderThread.Abort();
                });
                cancelButton.Clicked += new EventHandler(delegate(object sender, EventArgs e)
                {
                    loaderWindow.Destroy();
                    loaderThread.Abort();
                });
            }
        public static void Main()
        {
            PeriodicTableLogic    table    = new PeriodicTableLogic();
            PeriodicTableRenderer renderer = new PeriodicTableRenderer(new PeriodicTableRenderOptions()
            {
                ElementWidth   = 64,
                ElementHeight  = 64,
                LinePen        = new System.Drawing.Pen(System.Drawing.Color.Black),
                ForceAntiAlias = true,
                SymbolBrush    = System.Drawing.Brushes.Black,
                Font           = "Tahoma"
            });

            table.Init("./PeriodicTable.dat", new PeriodicTableLogic.HandleProgress(delegate(double d, string s){}));
            Console.WriteLine("Type a word");
            string cmd = "";

            do
            {
                Console.Write(" > ");
                cmd = Console.ReadLine().ToLower();
                renderer.Render(table.Spell(cmd, PeriodicTableLogic.SearchAlgorithm.ChunkSearch)).Save(cmd + ".png", System.Drawing.Imaging.ImageFormat.Png);
                Console.WriteLine("Image saved to " + cmd + ".png");
            }while (cmd != "quit");
        }
示例#3
0
 public static void Main()
 {
     PeriodicTableLogic table = new PeriodicTableLogic();
       PeriodicTableRenderer renderer = new PeriodicTableRenderer(new PeriodicTableRenderOptions()
                          {
                            ElementWidth = 64,
                                                            ElementHeight = 64,
                                                            LinePen = new System.Drawing.Pen(System.Drawing.Color.Black),
                                                            ForceAntiAlias = true,
                                                            SymbolBrush = System.Drawing.Brushes.Black,
                                                            Font = "Tahoma"
                          });
       PeriodicTableUI ui = new PeriodicTableUI(table, renderer);
       ui.Run();
 }
示例#4
0
        public static void Main()
        {
            PeriodicTableLogic    table    = new PeriodicTableLogic();
            PeriodicTableRenderer renderer = new PeriodicTableRenderer(new PeriodicTableRenderOptions()
            {
                ElementWidth   = 64,
                ElementHeight  = 64,
                LinePen        = new System.Drawing.Pen(System.Drawing.Color.Black),
                ForceAntiAlias = true,
                SymbolBrush    = System.Drawing.Brushes.Black,
                Font           = "Tahoma"
            });
            PeriodicTableUI ui = new PeriodicTableUI(table, renderer);

            ui.Run();
        }
 public static void Main()
 {
     PeriodicTableLogic table = new PeriodicTableLogic();
       PeriodicTableRenderer renderer = new PeriodicTableRenderer(new PeriodicTableRenderOptions()
                          {
                            ElementWidth = 64,
                                                            ElementHeight = 64,
                                                            LinePen = new System.Drawing.Pen(System.Drawing.Color.Black),
                                                            ForceAntiAlias = true,
                                                            SymbolBrush = System.Drawing.Brushes.Black,
                                                            Font = "Tahoma"
                          });
       table.Init("./PeriodicTable.dat", new PeriodicTableLogic.HandleProgress(delegate(double d, string s){}));
       Console.WriteLine("Type a word");
       string cmd = "";
       do
       {
     Console.Write(" > ");
     cmd = Console.ReadLine().ToLower();
     renderer.Render(table.Spell(cmd, PeriodicTableLogic.SearchAlgorithm.ChunkSearch)).Save(cmd + ".png", System.Drawing.Imaging.ImageFormat.Png);
     Console.WriteLine("Image saved to " + cmd + ".png");
       }
       while (cmd != "quit");
 }
示例#6
0
        public PeriodicTableUI(PeriodicTableLogic logic, PeriodicTableRenderer renderer)
        {
            Application.Init();
            aboutDialog = new AboutDialog();
            GladeXml dlg_main = new GladeXml(null, "main.glade", "mainWindow", null);

            dlg_main.Autoconnect(this);
            chunkSelect.Active = true;
            loader             = new Loader(logic, mainWindow);
            generate.Clicked  += new EventHandler(delegate(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(text.Buffer.Text))
                {
                    MemoryStream ms = new MemoryStream();
                    (loadedBitmap = renderer.Render(logic.Spell(text.Buffer.Text, chunkSelect.Active && !elementSearch.Active ? PeriodicTableLogic.SearchAlgorithm.ChunkSearch : PeriodicTableLogic.SearchAlgorithm.ElementBased))).Save(ms, ImageFormat.Png);
                    output.Clear();
                    ms.Position = 0;
                    using (Pixbuf oldPixbuf = output.Pixbuf)
                        output.Pixbuf = new Pixbuf(ms);
                }
                else
                {
                    MessageDialog md = new MessageDialog(mainWindow, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, "Please enter text into the conversion field");
                    md.Run();
                    md.Destroy();
                }
                UpdateSensitivity();
            });
            saveAs.Clicked += new EventHandler(delegate(object sender, EventArgs e)
            {
                FileChooserDialog fc = new Gtk.FileChooserDialog("Save As...", mainWindow, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept)
                {
                    DoOverwriteConfirmation = true
                };
                FileFilter filter = new FileFilter();
                filter.Name       = "PNG images";
                filter.AddMimeType("image/png");
                filter.AddPattern("*.png");
                fc.AddFilter(filter);
                if (fc.Run() == (int)ResponseType.Accept)
                {
                    Stream file = File.Open(string.IsNullOrEmpty(Path.GetExtension(fc.Filename)) ? (fc.Filename + ".png") : fc.Filename, FileMode.OpenOrCreate);
                    loadedBitmap.Save(file, ImageFormat.Png);
                    file.Close();
                }
                fc.Destroy();
            });
            about.Clicked += new EventHandler(delegate(object sender, EventArgs e)
            {
                aboutDialog.Run();
            });
            mainWindow.DeleteEvent += new DeleteEventHandler(delegate(object sender, DeleteEventArgs e)
            {
                Application.Quit();
            });
            Assembly asm = Assembly.GetExecutingAssembly();

            aboutDialog.ProgramName = (asm.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0] as AssemblyTitleAttribute).Title;
            aboutDialog.Version     = asm.GetName().Version.ToString();
            aboutDialog.Comments    = (asm.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false)[0] as AssemblyDescriptionAttribute).Description;
            aboutDialog.Copyright   = (asm.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0] as AssemblyCopyrightAttribute).Copyright;
            aboutDialog.License     = license;
            aboutDialog.Authors     = authors;
        }
 public PeriodicTableUI(PeriodicTableLogic logic, PeriodicTableRenderer renderer)
 {
     Application.Init();
       aboutDialog = new AboutDialog();
       GladeXml dlg_main = new GladeXml(null, "main.glade", "mainWindow", null);
       dlg_main.Autoconnect(this);
       chunkSelect.Active = true;
       loader = new Loader(logic, mainWindow);
       generate.Clicked += new EventHandler(delegate (object sender, EventArgs e)
       {
     if (!string.IsNullOrEmpty(text.Buffer.Text))
     {
       MemoryStream ms = new MemoryStream();
       (loadedBitmap = renderer.Render(logic.Spell(text.Buffer.Text, chunkSelect.Active && !elementSearch.Active ? PeriodicTableLogic.SearchAlgorithm.ChunkSearch : PeriodicTableLogic.SearchAlgorithm.ElementBased))).Save(ms, ImageFormat.Png);
       output.Clear();
       ms.Position = 0;
       using (Pixbuf oldPixbuf = output.Pixbuf)
     output.Pixbuf = new Pixbuf(ms);
     }
     else
     {
       MessageDialog md = new MessageDialog (mainWindow, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, "Please enter text into the conversion field");
       md.Run();
       md.Destroy();
     }
     UpdateSensitivity();
       });
       saveAs.Clicked += new EventHandler(delegate (object sender, EventArgs e)
       {
     FileChooserDialog fc = new Gtk.FileChooserDialog("Save As...", mainWindow, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept)
     {
       DoOverwriteConfirmation = true
     };
     FileFilter filter = new FileFilter();
     filter.Name = "PNG images";
     filter.AddMimeType("image/png");
     filter.AddPattern("*.png");
     fc.AddFilter(filter);
     if (fc.Run() == (int)ResponseType.Accept)
     {
       Stream file = File.Open(string.IsNullOrEmpty(Path.GetExtension(fc.Filename)) ? (fc.Filename + ".png") : fc.Filename, FileMode.OpenOrCreate);
       loadedBitmap.Save(file, ImageFormat.Png);
       file.Close();
     }
     fc.Destroy();
       });
       about.Clicked += new EventHandler(delegate (object sender, EventArgs e)
       {
     aboutDialog.Run();
       });
       mainWindow.DeleteEvent += new DeleteEventHandler(delegate(object sender, DeleteEventArgs e)
       {
     Application.Quit();
       });
       Assembly asm = Assembly.GetExecutingAssembly ();
       aboutDialog.ProgramName = (asm.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0] as AssemblyTitleAttribute).Title;
       aboutDialog.Version = asm.GetName().Version.ToString ();
       aboutDialog.Comments = (asm.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false)[0] as AssemblyDescriptionAttribute).Description;
       aboutDialog.Copyright = (asm.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0] as AssemblyCopyrightAttribute).Copyright;
       aboutDialog.License = license;
       aboutDialog.Authors = authors;
 }
 public Loader(PeriodicTableLogic logic, GtkWindow mainWindow)
 {
     GladeXml dlg_loading = new GladeXml(null, "loader.glade", "loaderWindow", null);
     dlg_loading.Autoconnect(this);
     this.logic = logic;
     loaderWindow.Hidden += new EventHandler(delegate(object sender, EventArgs e)
     {
       if (logic.IsInit)
     Application.Invoke(delegate(object sender2, EventArgs e2) { mainWindow.ShowAll(); });
       else
       {
     MessageDialog md = new MessageDialog (mainWindow, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, "Periodic Table not loaded.  Program will now exit.");
     md.Run();
     md.Destroy();
     Application.Quit();
       }
     });
     loaderWindow.DeleteEvent += new DeleteEventHandler(delegate(object sender, DeleteEventArgs e)
     {
       loaderThread.Abort();
     });
     cancelButton.Clicked += new EventHandler(delegate(object sender, EventArgs e)
     {
       loaderWindow.Destroy();
       loaderThread.Abort();
     });
 }