Advertisement
Anaristos

Untitled

Feb 8th, 2013
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.89 KB | None | 0 0
  1. require("CLRPackage")
  2. --
  3. import "System.ComponentModel"
  4. import "System.Drawing"
  5. import "System.Drawing.Text"
  6. import "System.IO"
  7. import "System.Threading"
  8. import "System.Windows.Forms"
  9. --
  10. function InitializeComponent(this)
  11. --
  12.     local textColor, textSize
  13.     local curFilename, storedPageSettings
  14.    
  15.     local dirty = false
  16.    
  17.     local noFilename = "Untitled"
  18.    
  19.     local fileOnDiskModified = false
  20.    
  21.     local button1        = Button()
  22.     local button2        = Button()
  23.     local comboBox1      = ComboBox()
  24.     local label1         = Label()
  25.     local label2         = Label()
  26.     local numericUpDown1 = NumericUpDown()
  27.     local richTextBox1   = RichTextBox()
  28.     local scrollBar1     = VScrollBar()
  29.    
  30.     local mainMenu1 = MainMenu()
  31.  
  32.     local menuItem1  = MenuItem()
  33.     local menuItem2  = MenuItem()
  34.     local menuItem3  = MenuItem()
  35.     local menuItem7  = MenuItem()
  36.     local menuItem11 = MenuItem()
  37.     local menuItem14 = MenuItem()
  38.     local menuItem19 = MenuItem()
  39.     local menuItem21 = MenuItem()
  40.  
  41.     local ExitMenu         = MenuItem()
  42.     local OpenFile         = MenuItem()
  43.     local PageSetupMenu    = MenuItem()
  44.     local PrintMenu        = MenuItem()
  45.     local PrintPreviewMenu = MenuItem()
  46.     local SaveFileAs       = MenuItem()
  47.     local UndoMenu         = MenuItem()
  48.     local CutMenu          = MenuItem()
  49.     local CopyMenu         = MenuItem()
  50.     local PasteMenu        = MenuItem()
  51.     local DeleteMenu       = MenuItem()
  52.     local GotoMenu         = MenuItem()
  53.     local SelectAllMenu    = MenuItem()
  54.     local DeleteAllMenu    = MenuItem()
  55.    
  56.     local sysFontCollection = InstalledFontCollection()
  57.  
  58.     local fsw = FileSystemWatcher()
  59.    
  60.     local function Exit_Click(sender, e)
  61.  
  62.                this:Close()
  63.  
  64.           end
  65.    
  66.     local function ReadTextFile()
  67.    
  68.                local filInfo, fs, extn
  69.  
  70.                richTextBox1.TextChanged:Remove(richTextBox1_TextChanged)
  71.          
  72.                fileSystemWatcher1.EnableRaisingEvents = false
  73.          
  74.                fs = FileStream(curFilename, FileMode.Open)
  75.          
  76.                filInfo = FileInfo(curFilename)
  77.                    
  78.                extn = filInfo.Extension:upper()
  79.                
  80.                if extn == ".RTF" then richTextBox1:LoadFile(fs, RichTextBoxStreamType.RichText)
  81.                else
  82.                      richTextBox1:LoadFile(fs, RichTextBoxStreamType.PlainText)
  83.                end
  84.                
  85.                fs:Close()
  86.          
  87.                fileSystemWatcher1.Path   = filInfo.DirectoryName
  88.                fileSystemWatcher1.Filter = filInfo.Name
  89.                    
  90.                richTextBox1.TextChanged:add(richTextBox1_TextChanged)
  91.                
  92.                fileSystemWatcher1.EnableRaisingEvents = true
  93.          
  94.           end  
  95.    
  96.     local function this_Load(sender, e)
  97.    
  98.               numericUpDown1.Value = 10          
  99.              
  100.               comboBox1.DataSource    = sysFontCollection.Families
  101.               comboBox1.DisplayMember = "Name"
  102.              
  103.               comboBox1:Select(0, 20)
  104.              
  105.               comboBox1.Text = sysFontCollection.Families[0].Name
  106.           end
  107.    
  108.     local function OpenFile_Click(sender, e)
  109.  
  110.                local openDlg = OpenFileDialog()
  111.                
  112.                openDlg.RestoreDirectory = true
  113.  
  114.                if openDlg:ShowDialog() == DialogResult.OK then
  115.                     curFilename = openDlg.Filename     
  116.                     ReadTextFile()
  117.                 end
  118.  
  119.           end
  120.          
  121.     local function button1_Click(sender, e)
  122.    
  123.               local colorDlg = ColorDialog()
  124.        
  125.               if colorDlg:ShowDialog() == DialogResult.OK then
  126.                     textColor = colorDlg.Color
  127.               end  
  128.        
  129.           end
  130.    
  131.     local function button2_Click(sender, e)
  132.              
  133.               local selFont = sysFontCollection.Families[comboBox1.SelectedIndex].Name
  134.              
  135.               textSize = numericUpDown1.Value
  136.        
  137.               richTextBox1.ForeColor = textColor
  138.               richTextBox1.Font      = Font(selFont, textSize)
  139.    
  140.           end
  141.          
  142.     local function richTextBox1_TextChanged(sender, e)
  143.           end
  144.          
  145.     local function comboBox1_SelectedIndexChanged(sender, e)
  146.               print("I was clicked hard!")
  147.           end
  148.          
  149.     local function scrollBar1_Scroll(sender, e)
  150.           end
  151.    
  152.     numericUpDown1:BeginInit()
  153.    
  154.     fsw:BeginInit()
  155.    
  156.     this:SuspendLayout()
  157.     --
  158.     -- comboBox1
  159.     --
  160.     comboBox1.Location      = Point(8, 112)
  161.     comboBox1.Name          = "comboBox1"
  162.     comboBox1.Size          = Size(152, 24)
  163.     comboBox1.TabIndex      = 0
  164.    
  165.     comboBox1.SelectedIndexChanged:Add(comboBox1_SelectedIndexChanged)
  166.     --
  167.     -- button1
  168.     --
  169.     button1.BackColor = Color.FromArgb(255,128,0);
  170.     button1.FlatStyle = FlatStyle.Flat;
  171.     button1.Location  = Point(240, 112)
  172.     button1.Name      = "button1"
  173.     button1.Size      = Size(80, 24)
  174.     button1.TabIndex  = 6
  175.     button1.Text      = "Color"
  176.    
  177.     button1.Click:add(button1_Click)   
  178.     --
  179.     -- richTextBox1
  180.     --
  181.     richTextBox1.BackColor = SystemColors.Info;
  182.     richTextBox1.Location  = Point(8, 144);
  183.     richTextBox1.Name      = "richTextBox1";
  184.     richTextBox1.Size      = Size(648, 248);
  185.     richTextBox1.TabIndex  = 7;
  186.     richTextBox1.Text      = "richTextBox1";
  187.    
  188.     richTextBox1.TextChanged:add(richTextBox1_TextChanged) 
  189.     --
  190.     -- button2
  191.     --
  192.     button2.Font     = Font("Tahoma", 10, FontStyle.Bold)
  193.     button2.Location = Point(408, 112)
  194.     button2.Name     = "button2"
  195.     button2.Size     = Size(80, 32)
  196.     button2.TabIndex = 8
  197.     button2.Text     = "Apply"
  198.    
  199.     button2.Click:add(button2_Click)   
  200.     --
  201.     -- label1
  202.     -- 
  203.     label1.Location = Point(8, 88)
  204.     label1.Name     = "label1"
  205.     label1.Size     = Size(104, 24)
  206.     label1.TabIndex = 1
  207.     label1.Text     = "Available Fonts"
  208.     --
  209.     -- label2
  210.     --
  211.     label2.Location = Point(184, 88);
  212.     label2.Name     = "label2";
  213.     label2.Size     = Size(56, 24);
  214.     label2.TabIndex = 3;
  215.     label2.Text     = "Size";
  216.     --
  217.     -- numericUpDown1
  218.     --
  219.     numericUpDown1.Location = Point(184, 112);
  220.     numericUpDown1.Name     = "numericUpDown1";
  221.     numericUpDown1.Size     = Size(48, 24);
  222.     numericUpDown1.TabIndex = 2;
  223.     --
  224.     -- Menu
  225.     --
  226.     mainMenu1.MenuItems:Add(menuItem1)
  227.     mainMenu1.MenuItems:Add(menuItem2)
  228.     mainMenu1.MenuItems:Add(menuItem3)
  229.  
  230.     menuItem1.Index = 0
  231.  
  232.     menuItem1.MenuItems:Add(OpenFile)
  233.     menuItem1.MenuItems:Add(SaveFileAs)
  234.     menuItem1.MenuItems:Add(menuItem7)
  235.     menuItem1.MenuItems:Add(PrintMenu)
  236.  
  237.     menuItem1.MenuItems:Add(PrintPreviewMenu)
  238.     menuItem1.MenuItems:Add(PageSetupMenu)
  239.     menuItem1.MenuItems:Add(menuItem11)
  240.  
  241.     menuItem1.MenuItems:Add(ExitMenu)
  242.  
  243.     menuItem1.Text = "&File"
  244.  
  245.     menuItem2.Index = 1
  246.  
  247.     menuItem2.MenuItems:Add(UndoMenu)
  248.     menuItem2.MenuItems:Add(menuItem14)
  249.     menuItem2.MenuItems:Add(CutMenu)
  250.     menuItem2.MenuItems:Add(CopyMenu)
  251.     menuItem2.MenuItems:Add(PasteMenu)
  252.     menuItem2.MenuItems:Add(DeleteMenu)
  253.     menuItem2.MenuItems:Add(menuItem19)
  254.     menuItem2.MenuItems:Add(GotoMenu)
  255.     menuItem2.MenuItems:Add(menuItem21)
  256.     menuItem2.MenuItems:Add(SelectAllMenu)
  257.     menuItem2.MenuItems:Add(DeleteAllMenu)
  258.  
  259.     menuItem2.Text = "&Edit";
  260.  
  261.     menuItem3.Index = 2
  262.     menuItem3.Text  = "F&ormat"
  263.  
  264.     OpenFile.Index = 0
  265.     OpenFile.Text  = "&Open File"
  266.  
  267.     OpenFile.Click:Add(OpenFile_Click)
  268.  
  269.     SaveFileAs.Index = 1
  270.     SaveFileAs.Text  = "&Save File As"
  271.  
  272.     menuItem7.Index = 2
  273.     menuItem7.Text  = "-"
  274.  
  275.     PrintMenu.Index = 3
  276.     PrintMenu.Text  = "&Print"
  277.  
  278.     PrintPreviewMenu.Index = 4
  279.     PrintPreviewMenu.Text  = "Print Pre&view"
  280.  
  281.     PageSetupMenu.Index = 5
  282.     PageSetupMenu.Text  = "Page Setup"
  283.  
  284.     menuItem11.Index = 6
  285.     menuItem11.Text  = "-"
  286.  
  287.     ExitMenu.Index = 7
  288.     ExitMenu.Text  = "E&xit"
  289.  
  290.     ExitMenu.Click:Add(Exit_Click)
  291.  
  292.     UndoMenu.Index = 0
  293.     UndoMenu.Text  = "&Undo"
  294.  
  295.     menuItem14.Index = 1
  296.     menuItem14.Text  = "-"
  297.  
  298.     CutMenu.Index = 2
  299.     CutMenu.Text  = "Cu&t"
  300.  
  301.     CopyMenu.Index = 3
  302.     CopyMenu.Text  = "&Copy"
  303.  
  304.     PasteMenu.Index = 4
  305.     PasteMenu.Text  = "&Paste"
  306.  
  307.     DeleteMenu.Index = 5
  308.     DeleteMenu.Text  = "De&lete"
  309.  
  310.     menuItem19.Index = 6
  311.     menuItem19.Text  = "-"
  312.  
  313.     GotoMenu.Index = 7
  314.     GotoMenu.Text  = "&Go To"
  315.  
  316.     menuItem21.Index = 8
  317.     menuItem21.Text  = "-"
  318.  
  319.     SelectAllMenu.Index = 9
  320.     SelectAllMenu.Text  = "Select &All"
  321.  
  322.     DeleteAllMenu.Index = 10
  323.     DeleteAllMenu.Text  = "&Delete All"
  324.     --
  325.     -- Scrollbar
  326.     --
  327.         scrollBar1.Dock =  DockStyle.Right
  328.        
  329.         scrollBar1.Scroll:Add(scrollBar1_Scroll)
  330.     --
  331.     --
  332.     --
  333.     fsw.EnableRaisingEvents = true
  334.     fsw.SynchronizingObject = this
  335.    
  336.     this.Controls:Add(button1)
  337.     this.Controls:Add(button2)
  338.     this.Controls:Add(label1)
  339.     this.Controls:Add(label2)
  340.     this.Controls:Add(numericUpDown1)
  341.     this.Controls:Add(comboBox1)
  342.     this.Controls:Add(richTextBox1)
  343.    
  344.     richTextBox1.Controls:Add(scrollBar1)
  345.  
  346.     this.AutoScaleBaseSize = Size(7, 17)
  347.     this.BackColor         = Color.Teal
  348.     this.ClientSize        = Size(664, 397)
  349.     this.Font              = Font("Tahoma", 10.0)
  350.     this.ForeColor         = SystemColors.ActiveCaptionText
  351.     this.Name              = "Form1"
  352.     this.Text              = "GDI+ Editor - A Simple Text Editor"
  353.     this.Menu              = mainMenu1
  354.     this.TopMost           = true
  355.  
  356.     this.Load:add(this_Load)
  357.    
  358.     fsw:EndInit()
  359.    
  360.     numericUpDown1:EndInit()
  361.    
  362.     this:ResumeLayout(false)
  363.    
  364.     return this
  365. --
  366. end
  367. --
  368. function run()
  369. --
  370.     InitializeComponent(Form()):Show()
  371. --
  372. end
  373. --
  374. -- To use it, either use dofile or require, then just type run()
  375. --
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement