当前位置: 首页>>代码示例>>C#>>正文


C# GC.Copy方法代码示例

本文整理汇总了C#中Gdk.GC.Copy方法的典型用法代码示例。如果您正苦于以下问题:C# GC.Copy方法的具体用法?C# GC.Copy怎么用?C# GC.Copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Gdk.GC的用法示例。


在下文中一共展示了GC.Copy方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RealizeHanlder

	void RealizeHanlder (object o, EventArgs sender)
        {
                white_gc = Style.WhiteGC;

                bkgr_gc = Style.BackgroundGC (StateType.Normal);

                selection_gc = new Gdk.GC (GdkWindow);
                selection_gc.Copy (Style.BackgroundGC (StateType.Normal));
                Gdk.Color fgcol = new Gdk.Color ();
                fgcol.Pixel = 0x000077ee;
                selection_gc.Foreground = fgcol;
                selection_gc.SetLineAttributes (3, LineStyle.Solid, CapStyle.NotLast, JoinStyle.Round);
        }
开发者ID:emtees,项目名称:old-code,代码行数:13,代码来源:IconList.cs

示例2: Render

		protected override void Render (Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
		{
			if (isDisposed)
				return;
			if (diffMode) {
				
				if (path.Equals (selctedPath)) {
					selectedLine = -1;
					selctedPath = null;
				}
				
				int w, maxy;
				window.GetSize (out w, out maxy);
				if (DrawLeft) {
					cell_area.Width += cell_area.X - leftSpace;
					cell_area.X = leftSpace;
				}
				var treeview = widget as FileTreeView;
				var p = treeview != null? treeview.CursorLocation : null;
				
				cell_area.Width -= RightPadding;
				
				window.DrawRectangle (widget.Style.BaseGC (Gtk.StateType.Normal), true, cell_area.X, cell_area.Y, cell_area.Width - 1, cell_area.Height);
				
				Gdk.GC normalGC = widget.Style.TextGC (StateType.Normal);
				Gdk.GC removedGC = new Gdk.GC (window);
				removedGC.Copy (normalGC);
				removedGC.RgbFgColor = baseRemoveColor.AddLight (-0.3);
				Gdk.GC addedGC = new Gdk.GC (window);
				addedGC.Copy (normalGC);
				addedGC.RgbFgColor = baseAddColor.AddLight (-0.3);
				Gdk.GC infoGC = new Gdk.GC (window);
				infoGC.Copy (normalGC);
				infoGC.RgbFgColor = widget.Style.Text (StateType.Normal).AddLight (0.2);
				
				Cairo.Context ctx = CairoHelper.Create (window);
				Gdk.Color bgColor = new Gdk.Color (0,0,0);
				
				
				// Rendering is done in two steps:
				// 1) Get a list of blocks to render
				// 2) render the blocks
				
				int y = cell_area.Y + 2;
				
				// cline keeps track of the current source code line (the one to jump to when double clicking)
				int cline = 1;
				bool inHeader = true;
				BlockInfo currentBlock = null;
				
				List<BlockInfo> blocks = new List<BlockInfo> ();
				
				for (int n=0; n<lines.Length; n++, y += lineHeight) {
					
					string line = lines [n];
					if (line.Length == 0) {
						currentBlock = null;
						y -= lineHeight;
						continue;
					}
					
					char tag = line [0];
	
					if (line.StartsWith ("---") || line.StartsWith ("+++")) {
						// Ignore this part of the header.
						currentBlock = null;
						y -= lineHeight;
						continue;
					}
					if (tag == '@') {
						int l = ParseCurrentLine (line);
						if (l != -1) cline = l - 1;
						inHeader = false;
					} else if (tag != '-' && !inHeader)
						cline++;
					
					BlockType type;
					bool hasBg = false;
					switch (tag) {
						case '-': type = BlockType.Removed; break;
						case '+': type = BlockType.Added; break;
						case '@': type = BlockType.Info; break;
						default: type = BlockType.Unchanged; break;
					}

					if (currentBlock == null || type != currentBlock.Type) {
						if (y > maxy)
							break;
					
						// Starting a new block. Mark section ends between a change block and a normal code block
						if (currentBlock != null && IsChangeBlock (currentBlock.Type) && !IsChangeBlock (type))
							currentBlock.SectionEnd = true;
						
						currentBlock = new BlockInfo () {
							YStart = y,
							FirstLine = n,
							Type = type,
							SourceLineStart = cline,
							SectionStart = (blocks.Count == 0 || !IsChangeBlock (blocks[blocks.Count - 1].Type)) && IsChangeBlock (type)
						};
//.........这里部分代码省略.........
开发者ID:nickname100,项目名称:monodevelop,代码行数:101,代码来源:CellRendererDiff.cs

示例3: Render

			protected override void Render (Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
			{
				if (isDisposed)
					return;
				try {
					if (diffMode) {
						int w, maxy;
						window.GetSize (out w, out maxy);

						int recty = cell_area.Y;
						int recth = cell_area.Height - 1;
						if (recty < 0) {
							recth += recty + 1;
							recty = -1;
						}
						if (recth > maxy + 2)
							recth = maxy + 2;

						window.DrawRectangle (widget.Style.BaseGC (Gtk.StateType.Normal), true, cell_area.X, recty, cell_area.Width - 1, recth);

						Gdk.GC normalGC = widget.Style.TextGC (StateType.Normal);
						Gdk.GC removedGC = new Gdk.GC (window);
						removedGC.Copy (normalGC);
						removedGC.RgbFgColor = new Color (255, 0, 0);
						Gdk.GC addedGC = new Gdk.GC (window);
						addedGC.Copy (normalGC);
						addedGC.RgbFgColor = new Color (0, 0, 255);
						Gdk.GC infoGC = new Gdk.GC (window);
						infoGC.Copy (normalGC);
						infoGC.RgbFgColor = new Color (0xa5, 0x2a, 0x2a);

						int y = cell_area.Y + 2;

						for (int n = 0; n < lines.Length; n++,y += lineHeight) {
							if (y + lineHeight < 0)
								continue;
							if (y > maxy)
								break;
							string line = lines[n];
							if (line.Length == 0)
								continue;

							Gdk.GC gc;
							switch (line[0]) {
							case '-':
								gc = removedGC;
								break;
							case '+':
								gc = addedGC;
								break;
							case '@':
								gc = infoGC;
								break;
							default:
								gc = normalGC;
								break;
							}

							layout.SetText (line);
							window.DrawLayout (gc, cell_area.X + 2, y, layout);
						}
						window.DrawRectangle (widget.Style.DarkGC (Gtk.StateType.Prelight), false, cell_area.X, recty, cell_area.Width - 1, recth);
						removedGC.Dispose ();
						addedGC.Dispose ();
						infoGC.Dispose ();
					} else {
						int y = cell_area.Y + (cell_area.Height - height) / 2;
						window.DrawLayout (widget.Style.TextGC (GetState (flags)), cell_area.X, y, layout);
					}
				} catch (Exception e) {
					Console.WriteLine (e);
				}
			}
开发者ID:RainsSoft,项目名称:playscript-monodevelop,代码行数:73,代码来源:RefactoringPreviewDialog.cs

示例4: Render

		protected override void Render (Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags)
		{
			if (isDisposed)
				return;
			if (diffMode) {
				
				if (path.Equals (selctedPath)) {
					selectedLine = -1;
					selctedPath = null;
				}
				
				int w, maxy;
				window.GetSize (out w, out maxy);
				
				var treeview = widget as FileTreeView;
				var p = treeview != null? treeview.CursorLocation : null;
				
				int recty = cell_area.Y;
				int recth = cell_area.Height - 1;
				if (recty < 0) {
					recth += recty + 1;
					recty = -1;
				}
				if (recth > maxy + 2)
					recth = maxy + 2;
				
				window.DrawRectangle (widget.Style.BaseGC (Gtk.StateType.Normal), true, cell_area.X, recty, cell_area.Width - 1, recth);

				Gdk.GC normalGC = widget.Style.TextGC (StateType.Normal);
				Gdk.GC removedGC = new Gdk.GC (window);
				removedGC.Copy (normalGC);
				removedGC.RgbFgColor = new Color (255, 0, 0);
				Gdk.GC addedGC = new Gdk.GC (window);
				addedGC.Copy (normalGC);
				addedGC.RgbFgColor = new Color (0, 0, 255);
				Gdk.GC infoGC = new Gdk.GC (window);
				infoGC.Copy (normalGC);
				infoGC.RgbFgColor = new Color (0xa5, 0x2a, 0x2a);
				
				int y = cell_area.Y + 2;
				int cline = 1;
				bool inHeader = true;
				
				for (int n=0; n<lines.Length; n++, y += lineHeight) {
					
					string line = lines [n];
					if (line.Length == 0)
						continue;
					
					char tag = line [0];

					// Keep track of the real file line
					int thisLine = cline;
					if (tag == '@') {
						int l = ParseCurrentLine (line);
						if (l != -1) cline = thisLine = l;
						inHeader = false;
					} else if (tag != '-' && !inHeader)
						cline++;
					
					if (y + lineHeight < 0)
						continue;
					if (y > maxy)
						break;
					
					Gdk.GC gc;
					switch (tag) {
						case '-': gc = removedGC; break;
						case '+': gc = addedGC; break;
						case '@': gc = infoGC; break;
						default: gc = normalGC; break;
					}

					if (p.HasValue && p.Value.X >= cell_area.X && p.Value.X <= cell_area.Right && p.Value.Y >= y && p.Value.Y < y + lineHeight) {
						window.DrawRectangle (widget.Style.BaseGC (Gtk.StateType.Prelight), true, cell_area.X, y, cell_area.Width - 1, lineHeight);
						selectedLine = thisLine;
						selctedPath = path;
					}
					
					layout.SetText (line);
					window.DrawLayout (gc, cell_area.X + 2, y, layout);
				}
				window.DrawRectangle (widget.Style.DarkGC (Gtk.StateType.Prelight), false, cell_area.X, recty, cell_area.Width - 1, recth);
				removedGC.Dispose ();
				addedGC.Dispose ();
				infoGC.Dispose ();
			} else {
				int y = cell_area.Y + (cell_area.Height - height)/2;
				window.DrawLayout (widget.Style.TextGC (GetState(flags)), cell_area.X, y, layout);
			}
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:91,代码来源:CellRendererDiff.cs

示例5: RenderPlaceholderText_internal

		static void RenderPlaceholderText_internal (Gtk.Widget widget, Gtk.ExposeEventArgs args, string placeHolderText, ref Pango.Layout layout, float xalign, float yalign, int xpad, int ypad)
		{
			if (layout == null) {
				layout = new Pango.Layout (widget.PangoContext);
				layout.FontDescription = widget.PangoContext.FontDescription.Copy ();
			}

			int wh, ww;
			args.Event.Window.GetSize (out ww, out wh);

			int width, height;
			layout.SetText (placeHolderText);
			layout.GetPixelSize (out width, out height);

			int x = xpad + (int)((ww - width) * xalign);
			int y = ypad + (int)((wh - height) * yalign);

			using (var gc = new Gdk.GC (args.Event.Window)) {
				gc.Copy (widget.Style.TextGC (Gtk.StateType.Normal));
				Xwt.Drawing.Color color_a = widget.Style.Base (Gtk.StateType.Normal).ToXwtValue ();
				Xwt.Drawing.Color color_b = widget.Style.Text (Gtk.StateType.Normal).ToXwtValue ();
				gc.RgbFgColor = color_b.BlendWith (color_a, 0.5).ToGtkValue ();

				args.Event.Window.DrawLayout (gc, x, y, layout);
			}
		}
开发者ID:m13253,项目名称:xwt,代码行数:26,代码来源:Gtk2Extensions.cs

示例6: DrawMove

        private void DrawMove(Gdk.Window window)
        {
            Gdk.GC gc = Style.ForegroundGC (StateType.Normal);

            if (info.stage == MoveStage.Start)
              {
                  int x = start_x +
                      info.start.x * (space + size);
                  int y = start_y +
                      info.start.y * (space + size);

                  window.DrawRectangle (gc, false, x, y,
                            size, size);
              }

            if (info.cursorVisible)
              {
                  Gdk.GC tempGC = new Gdk.GC (window);
                  tempGC.Copy (gc);
                  tempGC.SetLineAttributes (1,
                                LineStyle.
                                OnOffDash, 0, 0);

                  int x = start_x +
                      info.cursor.x * (space + size);
                  int y = start_y +
                      info.cursor.y * (space + size);

                  window.DrawRectangle (tempGC, false, x, y,
                            size, size);

              }

            return;
        }
开发者ID:BackupTheBerlios,项目名称:csboard-svn,代码行数:35,代码来源:Board.cs

示例7: DrawLastMove

        protected virtual void DrawLastMove(Gdk.Window window)
        {
            if (lastMove == null)
                return;

            int i = -1, j = -1;
            string letters = "abcdefgh";
            string numbers = "87654321";

            int k = lastMove.Length - 2;
            while (k >= 0)
              {
                  i = letters.IndexOf (lastMove[k]);
                  j = numbers.IndexOf (lastMove[k + 1]);
                  if (i >= 0 && j >= 0)
                      break;
                  k--;
              }

            if (i == -1 || j == -1)
                return;

            Gdk.GC gc = Style.ForegroundGC (StateType.Normal);
            Gdk.GC tempGC = new Gdk.GC (window);
            tempGC.Copy (gc);
            tempGC.SetLineAttributes (2, LineStyle.OnOffDash,
                          CapStyle.Round, 0);

            if (side)
              {
                  i = 7 - i;
                  j = 7 - j;
              }

            int x = start_x + i * (space + size);
            int y = start_y + j * (space + size);

            window.DrawRectangle (tempGC, false, x, y, size,
                          size);
        }
开发者ID:BackupTheBerlios,项目名称:csboard-svn,代码行数:40,代码来源:Board.cs

示例8: DrawEOLMarker

 float DrawEOLMarker(Gdk.Drawable g, System.Drawing.Color color, Gdk.GC gc, float x, float y)
 {
     //string EOLMarker = "\u00B6";
     string EOLMarker = "|";
     float width = MeasureString(FontContainer.DefaultFont, EOLMarker);
     g.DrawRectangle(gc, true,
                     new Gdk.Rectangle((int)Math.Round(x), (int) Math.Round(y), (int) Math.Round(width), fontHeight));
     HighlightColor eolMarkerColor = textArea.Document.HighlightingStrategy.GetColorFor("EolMarker");
     //g.DrawString("\u00B6", eolMarkerColor.Font, new SolidBrush(color), x, y, measureStringFormat);
     using (Gdk.GC tgc = new Gdk.GC(g)) {
         tgc.Copy(gc);
         tgc.RgbFgColor = new Gdk.Color(eolMarkerColor.Color);
         return DrawString(g, tgc, x, y, EOLMarker);
     }
 }
开发者ID:slluis,项目名称:monodevelop-prehistoric,代码行数:15,代码来源:TextView.cs

示例9: DrawDocumentWord

 // FIXME: draw the whole line using Pango
 float DrawDocumentWord(Gdk.Drawable g, string word, PointF position, Pango.FontDescription font, System.Drawing.Color foreColor, Gdk.GC gc)
 {
     if (word == null || word.Length == 0) {
         return 0f;
     }
     float wordWidth = MeasureString(font, word);
     g.DrawRectangle(gc, true, new Gdk.Rectangle((int) Math.Abs(position.X), (int) position.Y, (int) Math.Abs(wordWidth), (int) Math.Abs(FontHeight)));
     using (Gdk.GC tgc = new Gdk.GC(g)) {
         tgc.Copy(gc);
         tgc.RgbFgColor = new Gdk.Color(foreColor);
         return DrawString(g, tgc, position.X, position.Y, word);
     }
 }
开发者ID:slluis,项目名称:monodevelop-prehistoric,代码行数:14,代码来源:TextView.cs


注:本文中的Gdk.GC.Copy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。