Пример #1
0
        private static void AddSkinRow(Dialog dialog, BoxSizer column, string txt, SkinElementColor rgb, int rgbV)
        {
            string     buff;
            wxSize     sz        = new wxSize(40, 20);
            StaticText separator = new StaticText(dialog, 0, wxPorting.T("   "));

            BoxSizer row = new BoxSizer(Orientation.wxHORIZONTAL);

            rgb.m_label       = new StaticText(dialog, 0, wxPorting.LV(txt));
            rgb.m_rgbSelector = new Button(dialog, (int)MenuIDs.ID_CHOICE, wxPorting.L("Color..."), Window.wxDefaultPosition, Window.wxDefaultSize);
            sz.Height         = (rgb.m_rgbSelector.Size.Height);
            rgb.m_r           = new TextCtrl(dialog, 0, Globals.wxEmptyString, Window.wxDefaultPosition, sz);
            rgb.m_g           = new TextCtrl(dialog, 0, Globals.wxEmptyString, Window.wxDefaultPosition, sz);
            rgb.m_b           = new TextCtrl(dialog, 0, Globals.wxEmptyString, Window.wxDefaultPosition, sz);

            buff          = String.Format(wxPorting.T("%d"), (rgbV >> 16) & 0xFF);
            rgb.m_r.Value = (buff);
            buff          = String.Format(wxPorting.T("%d"), (rgbV >> 8) & 0xFF);
            rgb.m_g.Value = (buff);
            buff          = String.Format(wxPorting.T("%d"), rgbV & 0xFF);
            rgb.m_b.Value = (buff);

            row.Add(rgb.m_label, 35, SizerFlag.wxALIGN_LEFT | SizerFlag.wxRIGHT | SizerFlag.wxTOP, 4);
            row.Add(rgb.m_r, 20, SizerFlag.wxALIGN_RIGHT | SizerFlag.wxTOP, 4);
            row.Add(rgb.m_g, 20, SizerFlag.wxALIGN_RIGHT | SizerFlag.wxTOP, 4);
            row.Add(rgb.m_b, 20, SizerFlag.wxALIGN_RIGHT | SizerFlag.wxTOP, 4);
            row.Add(separator, 2, SizerFlag.wxTOP, 4);
            row.Add(rgb.m_rgbSelector, 20, SizerFlag.wxALIGN_RIGHT | SizerFlag.wxTOP, 4);

            column.Add(row, 1, SizerFlag.wxGROW | SizerFlag.wxLEFT | SizerFlag.wxRIGHT, 10);
        }
Пример #2
0
        private static int RetrieveValue(SkinElementColor el)
        {
            int    rv, gv, bv;
            String str;

            str = el.m_r.Value;
            rv  = Globals.wxStrtoul(str, 0, 0);
            str = el.m_g.Value;
            gv  = Globals.wxStrtoul(str, 0, 0);
            str = el.m_b.Value;
            bv  = Globals.wxStrtoul(str, 0, 0);
            return((rv << 16) | (gv << 8) | bv);
        }
Пример #3
0
        public void OnColorChoice(object sender, Event evt)
        {
            wx.Object        obj = evt.EventObject;
            SkinElementColor el  = null;

            if (obj == m_background.m_rgbSelector)
            {
                el = m_background;
            }
            else if (obj == m_freeTrack.m_rgbSelector)
            {
                el = m_freeTrack;
            }
            else if (obj == m_reservedTrack.m_rgbSelector)
            {
                el = m_reservedTrack;
            }
            else if (obj == m_reservedShunting.m_rgbSelector)
            {
                el = m_reservedShunting;
            }
            else if (obj == m_occupiedTrack.m_rgbSelector)
            {
                el = m_occupiedTrack;
            }
            else if (obj == m_workingTrack.m_rgbSelector)
            {
                el = m_workingTrack;
            }
            else if (obj == m_outline.m_rgbSelector)
            {
                el = m_outline;
            }
            else if (obj == m_text.m_rgbSelector)
            {
                el = m_text;
            }
            else
            {
                return;
            }

            byte   rv, gv, bv;
            String str;

            str = el.m_r.Value;
            rv  = Globals.wxStrtoul(str, 0, 0);
            str = el.m_g.Value;
            gv  = Globals.wxStrtoul(str, 0, 0);
            str = el.m_b.Value;
            bv  = Globals.wxStrtoul(str, 0, 0);
            Colour     elCol = new wx.Colour(rv, gv, bv);
            ColourData data  = new ColourData();

            data.ChooseFull = (true);
            data.Colour     = (elCol);

            ColourDialog dialog = new ColourDialog(this, data);

            if (dialog.ShowModal() == ShowModalResult.OK)
            {
                ColourData retData = dialog.ColourData;
                wx.Colour  col     = retData.Colour;
                byte       v       = col.Red;
                str          = String.Format(wxPorting.T("%d"), v);
                el.m_r.Value = (str);

                v            = col.Green;
                str          = String.Format(wxPorting.T("%d"), v);
                el.m_g.Value = (str);

                v            = col.Blue;
                str          = String.Format(wxPorting.T("%d"), v);
                el.m_b.Value = (str);
            }
        }