private bool gv_fmt(int col, int row, out MyTextFormat v) { v = new MyTextFormat { TextFont = Columns [col].TextFont.ToCrossFont(), TextColor = Columns [col].TextColor.ToCrossColor(), HorizontalTextAlignment = Columns [col].HorizontalAlignment.ToCrossTextAlignment(), VerticalTextAlignment = CrossGraphics.TextAlignment.Center, }; return(true); }
private bool gv_fmt(int col, int row, out MyTextFormat v) { v = new MyTextFormat { TextFont = Columns [col].TextFont, TextColor = Columns [col].TextColor, HorizontalTextAlignment = Columns [col].HorizontalAlignment, VerticalTextAlignment = TextAlignment.Start, }; return(true); }
public SQLiteGrid() { sqlite3 conn = ugly.open(":memory:"); conn.exec("BEGIN TRANSACTION"); conn.exec("CREATE TABLE foo (a int, b int, c int);"); for (int i = 0; i < 100; i++) { conn.exec("INSERT INTO foo (a,b,c) VALUES (?,?,?)", i, i * 5 - 3, i * i / 10); } conn.exec("COMMIT TRANSACTION"); var stmt = conn.prepare("SELECT * FROM foo"); var colinfo = new Dimension_Columns_SQLite(stmt); var rowinfo = new Dimension_Rows_SQLite(); var mytextfmt = new MyTextFormat { TextFont = this.Font.ToCrossFont(), TextColor = CrossGraphics.Colors.Black, HorizontalTextAlignment = CrossGraphics.TextAlignment.Center, VerticalTextAlignment = CrossGraphics.TextAlignment.Center, }; var fmt = new ValuePerCell_Steady <MyTextFormat> ( mytextfmt ); PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) => { if (e.PropertyName == A1Grid.FontProperty.PropertyName) { mytextfmt.TextFont = Font.ToCrossFont(); fmt.notify_changed(-1, -1); } }; var padding1 = new ValuePerCell_Steady <Padding?> (new Padding(1)); var padding4 = new ValuePerCell_Steady <Padding?> (new Padding(4)); var fill_white = new ValuePerCell_Steady <CrossGraphics.Color> (CrossGraphics.Colors.White); var rowlist = new RowList_SQLite_StringArray(stmt); var rowlist_cached = new RowList_Cache <string[]> (rowlist); var vpc = new ValuePerCell_RowList_Indexed <string, string[]> (rowlist_cached); IDrawCell <IGraphics> dec = new DrawCell_Text(vpc, fmt); dec = new DrawCell_Chain_Padding(padding4, dec); dec = new DrawCell_Fill(fill_white, dec); dec = new DrawCell_Chain_Padding(padding1, dec); dec = new DrawCell_Chain_Cache(dec, colinfo, rowinfo); var sel = new Selection(); var dec_selection = new DrawCell_FillRectIfSelected(sel, new CrossGraphics.Color(0, 255, 0, 120)); var dh_layers = new DrawVisible_Layers(new IDrawVisible <IGraphics>[] { new DrawVisible_Adapter_DrawCell <IGraphics>(dec), new DrawVisible_Adapter_DrawCell <IGraphics>(dec_selection) }); Main = new MainPanel( colinfo, rowinfo, dh_layers ); }
public A1Grid() { var colinfo = new RowColumnInfo_Steady_BindableProp(this, ColumnsProperty, ColumnWidthProperty); var rowinfo = new RowColumnInfo_Steady_BindableProp(this, RowsProperty, RowHeightProperty); var mytextfmt = new MyTextFormat { TextFont = this.Font.ToCrossFont(), TextColor = CrossGraphics.Colors.Black, HorizontalTextAlignment = CrossGraphics.TextAlignment.Center, VerticalTextAlignment = CrossGraphics.TextAlignment.Center, }; var fmt = new ValuePerCell_Steady <MyTextFormat> ( mytextfmt ); PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) => { if (e.PropertyName == A1Grid.FontProperty.PropertyName) { mytextfmt.TextFont = Font.ToCrossFont(); fmt.notify_changed(-1, -1); } }; IDrawCell <IGraphics> dec = new DrawCell_Text( new ValuePerCell_FromDelegates <string>(myutil.get_delegate()), fmt ); var padding1 = new ValuePerCell_Steady <Padding?> (new Padding(1)); var padding4 = new ValuePerCell_Steady <Padding?> (new Padding(4)); var fill_white = new ValuePerCell_Steady <CrossGraphics.Color> (CrossGraphics.Colors.White); dec = new DrawCell_Chain_Padding(padding4, dec); dec = new DrawCell_Fill(fill_white, dec); dec = new DrawCell_Chain_Padding(padding1, dec); // TODO probably useless //dec = new DrawCell_Chain_Cache (dec, colinfo, rowinfo); #if not var sel = new Selection(); var dec_selection = new DrawCell_FillRectIfSelected(sel, Color.FromRgba(0, 255, 0, 120)); var dh_layers = new DrawVisible_Layers(new IDrawVisible <IGraphics>[] { new DrawVisible_Cache(new DrawVisible_Adapter_DrawCell <IGraphics>(dec), colinfo, rowinfo), //new DrawVisible_Adapter_DrawCell<IGraphics>(dec_selection) }); #endif Main = new MainPanel( colinfo, rowinfo, new DrawVisible_Cache( new DrawVisible_Adapter_DrawCell <IGraphics>(dec) , colinfo, rowinfo) ); //Notify_DemoToggleSelections.Listen (Main, sel); #if not var fill_gray = new ValuePerCell_Steady <Color?> (Color.Gray); var frozen_textfmt = new ValuePerCell_Steady <MyTextFormat> ( new MyTextFormat { TextFont = Font.SystemFontOfSize(18, FontAttributes.Bold), TextColor = Color.Black, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center, }); Left = new FrozenColumnsPanel( new Dimension_Steady(1, 80, false), rowinfo, new DrawVisible_Adapter_DrawCell <IGraphics>( new DrawCell_Chain_Padding( padding1, new DrawCell_Fill( fill_gray, new DrawCell_Text( new ValuePerCell_RowNumber(), frozen_textfmt ) ) ) ) ); Left.SingleTap += (object sender, CellCoords e) => { // hack for testing purposes this.Font = Font.SystemFontOfSize(this.Font.FontSize + 1); }; Top = new FrozenRowsPanel( colinfo, new Dimension_Steady(1, 40, false), new DrawVisible_Adapter_DrawCell <IGraphics>( new DrawCell_Chain_Padding( padding1, new DrawCell_Fill( fill_gray, new DrawCell_Text( new ValuePerCell_ColumnLetters(), frozen_textfmt ) ) ) ) ); Top.SingleTap += (object sender, CellCoords e) => { // hack for testing purposes this.RowHeight *= 1.1; }; #endif }