Пример #1
0
        private void InitializeForm(long?prodId)
        {
            Image icon = FormHelper.LoadImage("Icons.Production32.png");

            evbIcon.Add(icon);
            icon.Show();

            LocationVisible              = true;
            UserVisible                  = true;
            DateVisible                  = true;
            GridDescriptionVisible       = true;
            SecondGridDescriptionVisible = true;
            SecondGridVisible            = true;
            btnImport.Visible            = BusinessDomain.DataImporters.Count > 0;

            btnLoadRecipe          = new PictureButton();
            btnLoadRecipe.Clicked += btnLoadRecipe_Clicked;
            btnLoadRecipe.SetImage(FormHelper.LoadImage("Icons.RecipeLoad24.png"));
            btnLoadRecipe.SetText(Translator.GetString("Load Recipe"));
            vbxAdditionalButtons.PackStart(btnLoadRecipe, false, true, 0);

            btnSaveRecipe          = new PictureButton();
            btnSaveRecipe.Clicked += btnSaveRecipe_Clicked;
            btnSaveRecipe.SetImage(FormHelper.LoadImage("Icons.RecipeSave24.png"));
            btnSaveRecipe.SetText(Translator.GetString("Save Recipe"));
            vbxAdditionalButtons.PackStart(btnSaveRecipe, false, true, 0);
            algAdditionalButtons.ShowAll();

            highlight = new PangoStyle {
                Color = Colors.Blue
            };

            ReInitializeForm(prodId);
        }
Пример #2
0
        protected void RefreshGridColumns()
        {
            ColumnController cc = new ColumnController();

            AddNumberColumn(cc);

            AddPartnerColumn(cc);

            cc.Add(new Column(Translator.GetString("Location"), "Location", 0.2, "Location")
            {
                MinWidth = 70
            });

            CellTextDate ctd = new CellTextDate("Date");

            cc.Add(new Column(Translator.GetString("Date"), ctd, 0.1, "Date")
            {
                MinWidth = 80
            });

            if (highlightEntities)
            {
                highlight = new PangoStyle {
                    Color = Colors.Red
                };

                grid.CellStyleProvider = grid_CellStyleProvider;
            }

            grid.ColumnController = cc;
            grid.CellFocusIn     += grid_CellFocusIn;
        }
Пример #3
0
        public override void Render(CellContext context, StateType state, double cellWidth, double cellHeight, CellPosition position)
        {
            CellPosition editPos = ParentColumn.ParentListView.EditedCell;

            if (editPos == position)
            {
                entry.SizeRequest();
                entry.SizeAllocate(context.Area);

                if (restartEdit)
                {
                    entry.SelectRegion(0, -1);
                    entry.HasFocus = true;
                    entry.GrabFocus();
                    restartEdit = false;
                }
                entry.Show();
            }
            else
            {
                string cellText = ObjectToString(boundObject);
                if (string.IsNullOrEmpty(cellText))
                {
                    return;
                }

                PangoStyle style = parentColumn.ParentListView.QueryCellStyle(state, position);

                context.Layout.Width     = (int)((cellWidth - hPadding * 2) * Pango.Scale.PangoScale);
                context.Layout.Ellipsize = EllipsizeMode;
                context.Layout.Alignment = alignment;

                context.Layout.SetMarkup(style.GetMarkup(cellText));
                int text_width;
                int text_height;
                context.Layout.GetPixelSize(out text_width, out text_height);

                context.Context.MoveTo(hPadding, ((int)cellHeight - text_height) / 2);
                Cairo.Color color = context.Theme.Colors.GetWidgetColor(
                    context.TextAsForeground ? GtkColorClass.Foreground : GtkColorClass.Text, state);
                color.A = context.Sensitive ? 1.0 : 0.3;

                context.Context.Color = color;
                context.Context.ShowLayout(context.Layout);
            }
        }
Пример #4
0
        private void SetupPangoLayout(string text, ObjectFont font, StringTrimming trimming, double?width)
        {
            PangoStyle style = new PangoStyle
            {
                ExactSize  = font.Size,
                FontFamily = DataHelper.GetPreferredFont(text) ?? (font.NameSpecified ? font.Name : DataHelper.DefaultDocumentsFont)
            };

            if (font.Italic)
            {
                style.Italic = true;
            }
            if (font.Bold)
            {
                style.Bold = true;
            }
            if (font.Underline)
            {
                style.Underline = true;
            }
            if (font.StrikeThrought)
            {
                style.Strikethrough = true;
            }

            pangoLayout.SetMarkup(style.GetMarkup(text));
            pangoLayout.Ellipsize = EllipsizeMode.None;
            pangoLayout.Wrap      = WrapMode.Word;
            if (width != null)
            {
                pangoLayout.Width = (int)(width * Scale.PangoScale);
            }
            else
            {
                pangoLayout.Width = -1;
                if (trimming != StringTrimming.None)
                {
                    pangoLayout.Ellipsize = EllipsizeMode.End;
                }
            }
        }
Пример #5
0
        public override void Render(CellContext context, StateType state, double cellWidth, double cellHeight, CellPosition position)
        {
            PangoStyle style = parentColumn.ParentListView.QueryCellStyle(state, position);

            context.Layout.Width     = (int)((cellWidth - hPadding * 2) * Pango.Scale.PangoScale);
            context.Layout.Ellipsize = EllipsizeMode;
            context.Layout.Alignment = alignment;

            context.Layout.SetMarkup(style.GetMarkup((firstRow + position.Row).ToString()));
            int text_width;
            int text_height;

            context.Layout.GetPixelSize(out text_width, out text_height);

            context.Context.MoveTo(hPadding, ((int)cellHeight - text_height) / 2);
            Cairo.Color color = context.Theme.Colors.GetWidgetColor(
                context.TextAsForeground ? GtkColorClass.Foreground : GtkColorClass.Text, state);
            color.A = context.Sensitive ? 1.0 : 0.3;

            context.Context.Color = color;
            context.Context.ShowLayout(context.Layout);
        }
Пример #6
0
        public override void Render(CellContext context, StateType state, double cellWidth, double cellHeight, CellPosition position)
        {
            Context cairo = context.Context;

            double x = 1.5;
            double y = 1.5;
            double r = 1;

            cellWidth  -= 3;
            cellHeight -= 3;
            // Draw backgound fill
            LinearGradient bgPattern = new LinearGradient(0, 0, 0, cellHeight);

            bgPattern.AddColorStop(0.0, new Color(219 / 255d, 219 / 255d, 219 / 255d));
            bgPattern.AddColorStop(0.2, new Color(233 / 255d, 233 / 255d, 233 / 255d));
            bgPattern.AddColorStop(0.2, new Color(221 / 255d, 221 / 255d, 221 / 255d));
            bgPattern.AddColorStop(0.3, new Color(221 / 255d, 221 / 255d, 221 / 255d));
            bgPattern.AddColorStop(0.3, new Color(218 / 255d, 218 / 255d, 218 / 255d));
            bgPattern.AddColorStop(0.4, new Color(218 / 255d, 218 / 255d, 218 / 255d));
            bgPattern.AddColorStop(0.8, new Color(250 / 255d, 250 / 255d, 250 / 255d));
            bgPattern.AddColorStop(1.0, new Color(221 / 255d, 221 / 255d, 221 / 255d));
            cairo.Pattern = bgPattern;
            cairo.RoundedRectangle(x - 0.5, y - 0.5, cellWidth + 1, cellHeight + 1, r);
            cairo.Fill();

            // Draw frame
            cairo.LineWidth = 1;
            cairo.Color     = new Color(181 / 255d, 181 / 255d, 181 / 255d);
            cairo.MoveTo(x + r, y);
            cairo.Arc(x + cellWidth - r, y + r, r, Math.PI * 1.5, Math.PI * 2);
            cairo.Stroke();

            cairo.Color = new Color(215 / 255d, 215 / 255d, 215 / 255d);
            cairo.MoveTo(x + cellWidth, y + r);
            cairo.Arc(x + cellWidth - r, y + cellHeight - r, r, 0, Math.PI * 0.5);
            cairo.Stroke();

            cairo.Color = new Color(181 / 255d, 181 / 255d, 181 / 255d);
            cairo.MoveTo(x + cellWidth - r, y + cellHeight);
            cairo.Arc(x + r, y + cellHeight - r, r, Math.PI * 0.5, Math.PI);
            cairo.Stroke();

            cairo.Color = new Color(215 / 255d, 215 / 255d, 215 / 255d);
            cairo.MoveTo(x, y + cellHeight - r);
            cairo.Arc(x + r, y + r, r, Math.PI, Math.PI * 1.5);
            cairo.Stroke();

            // Draw progress fill
            double         progressWidth = (cellWidth - 1) * Math.Max(Math.Min(double.IsNaN(progressValue) ? 0 : progressValue, 1), 0);
            LinearGradient fillPattern   = new LinearGradient(0, 0, 0, cellHeight);

            fillPattern.AddColorStop(0.0, new Color(128 / 255d, 168 / 255d, 121 / 255d));
            fillPattern.AddColorStop(0.1, new Color(128 / 255d, 168 / 255d, 121 / 255d));
            fillPattern.AddColorStop(0.2, new Color(146 / 255d, 186 / 255d, 229 / 255d));
            fillPattern.AddColorStop(0.4, new Color(83 / 255d, 149 / 255d, 223 / 255d));
            fillPattern.AddColorStop(0.5, new Color(66 / 255d, 143 / 255d, 231 / 255d));
            fillPattern.AddColorStop(0.8, new Color(119 / 255d, 201 / 255d, 255 / 255d));
            fillPattern.AddColorStop(1.0, new Color(125 / 255d, 191 / 255d, 255 / 255d));
            cairo.Pattern = fillPattern;
            cairo.Rectangle(x + 0.5, y - 0.5, progressWidth, cellHeight);
            cairo.Fill();
            cairo.MoveTo(x + 0.5, y);
            cairo.LineTo(x + progressWidth, y);
            cairo.Color = new Color(53 / 255d, 100 / 255d, 191 / 255d);
            cairo.Stroke();

            // Draw text
            PangoStyle style = parentColumn.ParentListView.QueryCellStyle(state, position);

            const double hPadding = 4;

            context.Layout.Width     = (int)((cellWidth - hPadding * 2) * Pango.Scale.PangoScale);
            context.Layout.Ellipsize = EllipsizeMode.End;
            context.Layout.Alignment = Alignment.Center;

            context.Layout.SetMarkup(style.GetMarkup(ObjectToString(boundObject)));
            int text_width;
            int text_height;

            context.Layout.GetPixelSize(out text_width, out text_height);

            cairo.MoveTo(x + hPadding, y + ((int)cellHeight - text_height) / 2);
            Color color = context.Theme.Colors.GetWidgetColor(
                context.TextAsForeground ? GtkColorClass.Foreground : GtkColorClass.Text, StateType.Normal);

            color.A = context.Sensitive ? 1.0 : 0.3;

            cairo.Color = color;
            cairo.ShowLayout(context.Layout);
        }