本文整理汇总了C#中Gtk.Button.SizeRequest方法的典型用法代码示例。如果您正苦于以下问题:C# Button.SizeRequest方法的具体用法?C# Button.SizeRequest怎么用?C# Button.SizeRequest使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gtk.Button
的用法示例。
在下文中一共展示了Button.SizeRequest方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ShowLoadSourceFile
void ShowLoadSourceFile (StackFrame sf)
{
if (messageOverlayWindow != null) {
messageOverlayWindow.Destroy ();
messageOverlayWindow = null;
}
messageOverlayWindow = new OverlayMessageWindow ();
var hbox = new HBox ();
hbox.Spacing = 8;
var label = new Label (string.Format ("{0} not found. Find source file at alternative location.", Path.GetFileName (sf.SourceLocation.FileName)));
hbox.TooltipText = sf.SourceLocation.FileName;
var color = (HslColor)editor.ColorStyle.NotificationText.Foreground;
label.ModifyFg (StateType.Normal, color);
int w, h;
label.Layout.GetPixelSize (out w, out h);
hbox.PackStart (label, true, true, 0);
var openButton = new Button (Gtk.Stock.Open);
openButton.WidthRequest = 60;
hbox.PackEnd (openButton, false, false, 0);
var container = new HBox ();
const int containerPadding = 8;
container.PackStart (hbox, true, true, containerPadding);
messageOverlayWindow.Child = container;
messageOverlayWindow.ShowOverlay (editor);
messageOverlayWindow.SizeFunc = () => openButton.SizeRequest ().Width + w + hbox.Spacing * 5 + containerPadding * 2;
openButton.Clicked += delegate {
var dlg = new OpenFileDialog (GettextCatalog.GetString ("File to Open"), SelectFileDialogAction.Open) {
TransientFor = IdeApp.Workbench.RootWindow,
ShowEncodingSelector = true,
ShowViewerSelector = true
};
if (!dlg.Run ())
return;
var newFilePath = dlg.SelectedFile;
try {
if (File.Exists (newFilePath)) {
if (SourceCodeLookup.CheckFileMd5 (newFilePath, sf.SourceLocation.FileHash)) {
SourceCodeLookup.AddLoadedFile (newFilePath, sf.SourceLocation.FileName);
sf.UpdateSourceFile (newFilePath);
if (IdeApp.Workbench.OpenDocument (newFilePath, null, sf.SourceLocation.Line, 1, OpenDocumentOptions.Debugger) != null) {
this.WorkbenchWindow.CloseWindow (false);
}
} else {
MessageService.ShowWarning ("File checksum doesn't match.");
}
} else {
MessageService.ShowWarning ("File not found.");
}
} catch (Exception) {
MessageService.ShowWarning ("Error opening file");
}
};
}
示例2: ShowIncorretEolMarkers
void ShowIncorretEolMarkers (string fileName, bool multiple)
{
RemoveMessageBar ();
messageOverlayWindow = new OverlayMessageWindow ();
var hbox = new HBox ();
hbox.Spacing = 8;
var image = new HoverCloseButton ();
hbox.PackStart (image, false, false, 0);
var label = new Label (string.Format ("This file has line endings ({0}) which differ from the policy settings ({1}).", GetEolString (DetectedEolMarker), GetEolString (textEditor.Options.DefaultEolMarker)));
var color = (Mono.TextEditor.HslColor)textEditor.ColorStyle.NotificationText.Foreground;
label.ModifyFg (StateType.Normal, color);
int w, h;
label.Layout.GetPixelSize (out w, out h);
label.Ellipsize = Pango.EllipsizeMode.End;
hbox.PackStart (label, true, true, 0);
var okButton = new Button (Gtk.Stock.Ok);
okButton.WidthRequest = 60;
hbox.PackEnd (okButton, false, false, 0);
var list = new List<string> ();
list.Add (string.Format ("Convert to {0} line endings", GetEolString (textEditor.Options.DefaultEolMarker)));
if (multiple)
list.Add (string.Format ("Convert all files to {0} line endings", GetEolString (textEditor.Options.DefaultEolMarker)));
list.Add (string.Format ("Keep {0} line endings", GetEolString (DetectedEolMarker)));
if (multiple)
list.Add (string.Format ("Keep {0} line endings in all files", GetEolString (DetectedEolMarker)));
var combo = new ComboBox (list.ToArray ());
combo.Active = 0;
hbox.PackEnd (combo, false, false, 0);
var container = new HBox ();
const int containerPadding = 8;
container.PackStart (hbox, true, true, containerPadding);
messageOverlayWindow.Child = container;
messageOverlayWindow.ShowOverlay (this.TextEditor);
messageOverlayWindow.SizeFunc = () => {
return okButton.SizeRequest ().Width +
combo.SizeRequest ().Width +
image.SizeRequest ().Width +
w +
hbox.Spacing * 4 +
containerPadding * 2;
};
image.Clicked += delegate {
UseIncorrectMarkers = true;
view.WorkbenchWindow.ShowNotification = false;
RemoveMessageBar ();
};
okButton.Clicked += delegate {
if (multiple) {
switch (combo.Active) {
case 0:
ConvertLineEndings ();
view.WorkbenchWindow.ShowNotification = false;
view.Save (fileName, view.SourceEncoding);
break;
case 1:
FileRegistry.ConvertLineEndingsInAllFiles ();
break;
case 2:
UseIncorrectMarkers = true;
view.WorkbenchWindow.ShowNotification = false;
break;
case 3:
FileRegistry.IgnoreLineEndingsInAllFiles ();
break;
}
} else {
switch (combo.Active) {
case 0:
ConvertLineEndings ();
view.WorkbenchWindow.ShowNotification = false;
view.Save (fileName, view.SourceEncoding);
break;
case 1:
UseIncorrectMarkers = true;
view.WorkbenchWindow.ShowNotification = false;
break;
}
}
RemoveMessageBar ();
};
}
示例3: ShowIncorrectEolMarkers
void ShowIncorrectEolMarkers (string fileName, bool multiple)
{
RemoveMessageBar ();
var hbox = new HBox ();
hbox.Spacing = 8;
var image = new HoverCloseButton ();
hbox.PackStart (image, false, false, 0);
var label = new Label (string.Format ("This file has line endings ({0}) which differ from the policy settings ({1}).", GetEolString (DetectedEolMarker), GetEolString (textEditor.Options.DefaultEolMarker)));
var color = (HslColor)textEditor.ColorStyle.NotificationText.Foreground;
label.ModifyFg (StateType.Normal, color);
int w, h;
label.Layout.GetPixelSize (out w, out h);
label.Ellipsize = Pango.EllipsizeMode.End;
hbox.PackStart (label, true, true, 0);
var okButton = new Button (Gtk.Stock.Ok);
okButton.WidthRequest = 60;
// Small amount of vertical padding for the OK button.
const int verticalPadding = 2;
var vbox = new VBox ();
vbox.PackEnd (okButton, true, true, verticalPadding);
hbox.PackEnd (vbox, false, false, 0);
var list = new List<string> ();
list.Add (string.Format ("Convert to {0} line endings", GetEolString (textEditor.Options.DefaultEolMarker)));
list.Add (string.Format ("Convert all files to {0} line endings", GetEolString (textEditor.Options.DefaultEolMarker)));
list.Add (string.Format ("Keep {0} line endings", GetEolString (DetectedEolMarker)));
list.Add (string.Format ("Keep {0} line endings in all files", GetEolString (DetectedEolMarker)));
var combo = new ComboBox (list.ToArray ());
combo.Active = 0;
hbox.PackEnd (combo, false, false, 0);
incorrectEolMessage = new HBox ();
const int containerPadding = 8;
incorrectEolMessage.PackStart (hbox, true, true, containerPadding);
// This is hacky, but it will ensure that our combo appears with with the correct size.
GLib.Timeout.Add (100, delegate {
combo.QueueResize ();
return false;
});
AddOverlay (incorrectEolMessage, () => {
return okButton.SizeRequest ().Width +
combo.SizeRequest ().Width +
image.SizeRequest ().Width +
w +
hbox.Spacing * 4 +
containerPadding * 2;
});
image.Clicked += delegate {
UseIncorrectMarkers = true;
view.WorkbenchWindow.ShowNotification = false;
RemoveMessageBar ();
};
okButton.Clicked += delegate {
switch (combo.Active) {
case 0:
ConvertLineEndings ();
view.WorkbenchWindow.ShowNotification = false;
view.Save (fileName, view.SourceEncoding);
break;
case 1:
FileRegistry.ConvertLineEndingsInAllFiles ();
break;
case 2:
UseIncorrectMarkers = true;
view.WorkbenchWindow.ShowNotification = false;
break;
case 3:
FileRegistry.IgnoreLineEndingsInAllFiles ();
break;
}
RemoveMessageBar ();
};
}