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