BioGTK  6.5.0
A .NET library & program for annotating, editing various microscopy imaging formats using Bioformats supported images. Including whole slide, pyramidal, and series.
Loading...
Searching...
No Matches
BioGTK.TabsView Class Reference
Inheritance diagram for BioGTK.TabsView:

Public Member Functions

ImageView GetViewer (int i)
 
ImageView? GetViewer (string name)
 
int GetViewerCount ()
 
void RemoveViewer (ImageView v)
 
void AddViewer (ImageView v)
 
void RenameTab (string name, string newName)
 
void SetTab (int i)
 Sets the current tab index.
 
void AddTab (BioImage im)
 
void RemoveTab (string tabName)
 
void Open (string file)
 

Static Public Member Functions

static TabsView Create ()
 
static bool SetImageJPath ()
 

Public Attributes

MenuBar ImageJMenu
 
MenuBar MainMenu
 

Protected Member Functions

 TabsView (Builder builder, IntPtr handle)
 
void SetupHandlers ()
 This function sets up the event handlers for the menu items.
 
async void openImagesMenuClick (object sender, EventArgs a)
 
async void openOMEImagesMenuClick (object sender, EventArgs a)
 
async void openOMESeriesMenuClick (object sender, EventArgs a)
 
async void openSeriesMenuClick (object sender, EventArgs a)
 
async void addImagesToTabMenuClick (object sender, EventArgs a)
 
async void addOMEImagesToTabClick (object sender, EventArgs a)
 
async void saveSelectedTiffClick (object sender, EventArgs a)
 
async void saveSelectedOMEClick (object sender, EventArgs a)
 
async void saveTabOMEClick (object sender, EventArgs a)
 
async void saveTabTiffMenuClick (object sender, EventArgs a)
 
async void saveSeriesMenuClick (object sender, EventArgs a)
 
void imagesToStackClick (object sender, EventArgs a)
 
void toolsMenuClick (object sender, EventArgs a)
 
void setToolMenuClick (object sender, EventArgs a)
 
void roiManagerMenuClick (object sender, EventArgs a)
 
void exportROIsToCSVMenuClick (object sender, EventArgs a)
 
void importROIsFromCSVMenuClick (object sender, EventArgs a)
 
void exportROIsOfFolderOfImagesMenuClick (object sender, EventArgs a)
 
void autoThresholdAllMenuClick (object sender, EventArgs a)
 
void channelsToolMenuClick (object sender, EventArgs a)
 
void switchRedBlueMenuClick (object sender, EventArgs a)
 
void stackToolMenuClick (object sender, EventArgs a)
 
void to8BitMenuClick (object sender, EventArgs a)
 
void to16BitMenuClick (object sender, EventArgs a)
 
void to24BitMenuClick (object sender, EventArgs a)
 
void to32BitMenuClick (object sender, EventArgs a)
 
void to48BitMenuClick (object sender, EventArgs a)
 
void filtersMenuClick (object sender, EventArgs a)
 
void functionsToolMenuClick (object sender, EventArgs a)
 
void consoleMenuClick (object sender, EventArgs a)
 
void scriptRunnerMenuClick (object sender, EventArgs a)
 
void AboutClick (object sender, EventArgs a)
 

Detailed Description

Definition at line 19 of file TabsView.cs.

Constructor & Destructor Documentation

◆ TabsView()

BioGTK.TabsView.TabsView ( Builder builder,
IntPtr handle )
protected

Definition at line 226 of file TabsView.cs.

226 : base(handle)
227 {
228 _builder = builder;
229 App.tabsView = this;
230 builder.Autoconnect(this);
231 filteredMenu.Active = true;
233 progress = Progress.Create(title, "", "");
234 Function.InitializeMainMenu();
235 filechooser =
236 new Gtk.FileChooserDialog("Choose file to open",
237 this,
238 FileChooserAction.Open,
239 "Cancel", ResponseType.Cancel,
240 "OK", ResponseType.Accept);
241 filechooser.SelectMultiple = true;
242 Menu m = new Menu();
243 foreach (RotateFlipType flip in (RotateFlipType[])Enum.GetValues(typeof(RotateFlipType)))
244 {
245 MenuItem mi = new MenuItem(flip.ToString());
246 mi.ButtonPressEvent += RotateFlip_ButtonPressEvent;
247 m.Append(mi);
248 }
249 rotateFlipMenu.Submenu = m;
250 rotateFlipMenu.ShowAll();
251 string a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
252 Menu me = new Menu();
253 foreach (char c in a)
254 {
255 MenuItem mi = new MenuItem(c.ToString());
256 Menu men = new Menu();
257 foreach (Fiji.Macro.Command command in Fiji.Macro.Commands.Values)
258 {
259 if (command.Name.StartsWith(c))
260 {
261 MenuItem menuItem = new MenuItem(command.Name.ToString());
262 menuItem.ButtonPressEvent += CommandMenuItem_ButtonPressEvent;
263 men.Append(menuItem);
264 }
265 }
266 mi.Submenu = men;
267 me.Append(mi);
268 }
269 commandsMenu.Submenu = me;
270 commandsMenu.ShowAll();
271 recentMenu.Submenu = recent;
272
273 App.ApplyStyles(this);
274 Menu rm = new Menu();
275 foreach(Scripting.Script s in Scripting.scripts.Values)
276 {
277 MenuItem mi = new MenuItem(s.name);
278 mi.ButtonPressEvent += Mi_ButtonPressEvent;
279 rm.Append(mi);
280 }
281 //runMenu.ShowAll();
282 Plugins.Initialize();
283 ML.ML.Initialize();
284 AIMenu.ShowAll();
285 App.MoveToMain(this);
286 }
void SetupHandlers()
This function sets up the event handlers for the menu items.
Definition TabsView.cs:398

Member Function Documentation

◆ AboutClick()

void BioGTK.TabsView.AboutClick ( object sender,
EventArgs a )
protected

It creates a new instance of the About class, and then shows it

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes containing event data.

Definition at line 1657 of file TabsView.cs.

1658 {
1659 App.about = About.Create();
1660 App.about.Show();
1661 App.about.Present();
1662 }

◆ addImagesToTabMenuClick()

async void BioGTK.TabsView.addImagesToTabMenuClick ( object sender,
EventArgs a )
protected

It opens a file chooser dialog, and then adds the selected images to the currently selected viewer

Parameters
senderThe object that sent the event.
EventArgsThe event arguments.
Returns
The response type of the filechooser dialog.

Definition at line 1245 of file TabsView.cs.

1246 {
1247 filechooser = new FileChooserDialog("Choose file to add to current tab.", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1248 filechooser.SelectMultiple = true;
1249 if (filechooser.Run() != (int)ResponseType.Accept)
1250 return;
1251 filechooser.Hide();
1252 foreach (string item in filechooser.Filenames)
1253 {
1254 StartProgress("Add Image to Tab", "Opening");
1255 await BioImage.OpenAsync(item, false, false, true, 0);
1256 BioImage im = Images.GetImage(item);
1257 AddTab(im);
1258 StopProgress();
1259 }
1260 this.ShowAll();
1261 }
void AddTab(BioImage im)
Definition TabsView.cs:1034

◆ addOMEImagesToTabClick()

async void BioGTK.TabsView.addOMEImagesToTabClick ( object sender,
EventArgs a )
protected

It opens a file chooser dialog, and when the user selects a file, it opens the file as an OME image, and adds it to the currently selected viewer

Parameters
senderThe object that sent the event.
EventArgsThe event arguments.
Returns
The response type of the filechooser dialog.

Definition at line 1269 of file TabsView.cs.

1270 {
1271 filechooser = new FileChooserDialog("Choose OME file to add to current tab.", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1272 filechooser.SelectMultiple = true;
1273 if (filechooser.Run() != (int)ResponseType.Accept)
1274 return;
1275 filechooser.Hide();
1276 foreach (string item in filechooser.Filenames)
1277 {
1278 StartProgress("Add Image to Tab", "Opening");
1279 await BioImage.OpenAsync(item, true, false, true, 0);
1280 BioImage im = Images.GetImage(item);
1281 AddTab(im);
1282 StopProgress();
1283 }
1284 this.Show();
1285 }

◆ AddTab()

void BioGTK.TabsView.AddTab ( BioImage im)

It adds a new tab to the tab control

Parameters
BioImageThis is the image that you want to display.

Definition at line 1034 of file TabsView.cs.

1035 {
1036
1037 try
1038 {
1039 if (im == null)
1040 return;
1041 for (int vi = 0; vi < viewers.Count; vi++)
1042 {
1043 for (int i = 0; i < viewers[vi].Images.Count; i++)
1044 {
1045 if (viewers[vi].Images[i].Filename == im.Filename)
1046 return;
1047 }
1048 }
1049 ImageView v = ImageView.Create(im);
1050 viewers.Add(v);
1051 Label dummy = new Gtk.Label(System.IO.Path.GetDirectoryName(im.file.Replace("\\", "/")) + "/" + im.Filename);
1052 dummy.Text = im.file.Replace("\\", "/") + "/" + im.Filename;
1053 dummy.Visible = false;
1054 Label l = new Gtk.Label(System.IO.Path.GetFileName(im.Filename));
1055 l.Text = System.IO.Path.GetFileName(im.Filename);
1056 tabsView.AppendPage(dummy, l);
1057 Console.WriteLine("New tab added for " + im.Filename);
1058 App.nodeView.UpdateItems();
1059 tabsView.ShowAll();
1060 v.Show();
1061 }
1062 catch (Exception e)
1063 {
1064 // Execute on UI thread
1065 Gtk.Application.Invoke((sender, args) =>
1066 {
1067 if (im == null)
1068 return;
1069 for (int vi = 0; vi < viewers.Count; vi++)
1070 {
1071 for (int i = 0; i < viewers[vi].Images.Count; i++)
1072 {
1073 if (viewers[vi].Images[i].Filename == im.Filename)
1074 return;
1075 }
1076 }
1077 ImageView v = ImageView.Create(im);
1078 viewers.Add(v);
1079 Label dummy = new Gtk.Label(System.IO.Path.GetDirectoryName(im.file.Replace("\\", "/")) + "/" + im.Filename);
1080 dummy.Text = im.file.Replace("\\", "/") + "/" + im.Filename;
1081 dummy.Visible = false;
1082 Label l = new Gtk.Label(System.IO.Path.GetFileName(im.Filename));
1083 l.Text = System.IO.Path.GetFileName(im.Filename);
1084 tabsView.AppendPage(dummy, l);
1085 Console.WriteLine("New tab added for " + im.Filename);
1086 App.nodeView.UpdateItems();
1087 tabsView.ShowAll();
1088 v.Show();
1089 });
1090 }
1091 }

◆ AddViewer()

void BioGTK.TabsView.AddViewer ( ImageView v)

Definition at line 48 of file TabsView.cs.

49 {
50 viewers.Add(v);
51 }

◆ autoThresholdAllMenuClick()

void BioGTK.TabsView.autoThresholdAllMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the "Auto Threshold All" menu item.

Parameters
senderThe object that raised the event.
EventArgsThe event arguments.

Definition at line 1523 of file TabsView.cs.

1524 {
1525 BioImage.AutoThreshold(ImageView.SelectedImage, true);
1526 if (ImageView.SelectedImage.bitsPerPixel > 8)
1527 ImageView.SelectedImage.StackThreshold(true);
1528 else
1529 ImageView.SelectedImage.StackThreshold(false);
1530 App.viewer.UpdateImage();
1531 App.viewer.UpdateView();
1532 }

◆ channelsToolMenuClick()

void BioGTK.TabsView.channelsToolMenuClick ( object sender,
EventArgs a )
protected

It creates a new instance of the ChannelsTool class, and then shows it

Parameters
senderThe object that raised the event.
EventArgsThe event arguments.

Definition at line 1537 of file TabsView.cs.

1538 {
1539 if (App.viewer == null)
1540 return;
1541 App.channelsTool = ChannelsTool.Create();
1542 App.channelsTool.Show();
1543 App.channelsTool.Present();
1544 }

◆ consoleMenuClick()

void BioGTK.TabsView.consoleMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the console menu button

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1636 of file TabsView.cs.

1637 {
1638 App.console = BioConsole.Create();
1639 App.console.Show();
1640 App.console.Present();
1641 }

◆ Create()

static TabsView BioGTK.TabsView.Create ( )
static

It creates a new instance of the TabsView class, which is a class that inherits from Gtk.Window

Returns
A new instance of the TabsView class.

Definition at line 219 of file TabsView.cs.

220 {
221 Builder builder = new Builder(new FileStream(System.IO.Path.GetDirectoryName(Environment.ProcessPath) + "/" + "Glade/TabsView.glade", FileMode.Open));
222 return new TabsView(builder, builder.GetObject("TabsView").Handle);
223 }

◆ exportROIsOfFolderOfImagesMenuClick()

void BioGTK.TabsView.exportROIsOfFolderOfImagesMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the "Export ROIs of Folder of Images" menu item

Parameters
senderThe object that raised the event.
EventArgs

Definition at line 1494 of file TabsView.cs.

1495 {
1496 Gtk.FileChooserDialog folderchooser = new Gtk.FileChooserDialog("Set folder of images for export.",
1497 this,
1498 FileChooserAction.SelectFolder,
1499 "Cancel", ResponseType.Cancel,
1500 "Ok", ResponseType.Ok);
1501 folderchooser.SelectMultiple = true;
1502 if (folderchooser.Run() != (int)ResponseType.Ok)
1503 return;
1504 string folder = folderchooser.Filename;
1505 folderchooser.Destroy();
1506 Gtk.FileChooserDialog filechooser = new Gtk.FileChooserDialog("Set filename for CSV to export.",
1507 this,
1508 FileChooserAction.Save,
1509 "Cancel", ResponseType.Cancel,
1510 "Ok", ResponseType.Ok);
1511 filechooser.SelectMultiple = false;
1512 if (filechooser.Run() != (int)ResponseType.Ok)
1513 return;
1514 string file = filechooser.Filename;
1515 filechooser.Hide();
1516 BioImage.ExportROIFolder(folder, file);
1517 }

◆ exportROIsToCSVMenuClick()

void BioGTK.TabsView.exportROIsToCSVMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the "Export ROIs to CSV" menu item

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes containing event data.

Definition at line 1456 of file TabsView.cs.

1457 {
1458 Gtk.FileChooserDialog filechooser = new Gtk.FileChooserDialog("Set filename for export.",
1459 this,
1460 FileChooserAction.Save,
1461 "Cancel", ResponseType.Cancel,
1462 "Ok", ResponseType.Ok);
1463 filechooser.SelectMultiple = false;
1464 if (filechooser.Run() != (int)ResponseType.Ok)
1465 return;
1466 BioImage.ExportROIsCSV(filechooser.Filename, ImageView.SelectedImage.Annotations);
1467 filechooser.Hide();
1468 }

◆ filtersMenuClick()

void BioGTK.TabsView.filtersMenuClick ( object sender,
EventArgs a )
protected

It shows the filters menu.

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes that contain event data.

Definition at line 1615 of file TabsView.cs.

1616 {
1617 App.filters = FiltersView.Create();
1618 App.filters.Show();
1619 App.filters.Present();
1620 }

◆ functionsToolMenuClick()

void BioGTK.TabsView.functionsToolMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the functions tool menu item

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes containing event data.

Definition at line 1626 of file TabsView.cs.

1627 {
1628 App.funcs = Functions.Create();
1629 App.funcs.Show();
1630 App.funcs.Present();
1631 }

◆ GetViewer() [1/2]

ImageView BioGTK.TabsView.GetViewer ( int i)

Definition at line 24 of file TabsView.cs.

25 {
26 return viewers[i];
27 }

◆ GetViewer() [2/2]

ImageView? BioGTK.TabsView.GetViewer ( string name)

Definition at line 28 of file TabsView.cs.

29 {
30 for (int v = 0; v < viewers.Count; v++)
31 {
32 for (int i = 0; i < viewers.Count; i++)
33 {
34 if (viewers[v].Images[i].Filename == name)
35 return viewers[v];
36 }
37 }
38 return null;
39 }

◆ GetViewerCount()

int BioGTK.TabsView.GetViewerCount ( )

Definition at line 40 of file TabsView.cs.

41 {
42 return viewers.Count;
43 }

◆ imagesToStackClick()

void BioGTK.TabsView.imagesToStackClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks the "Images to Stack" button

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes that contain event data.

Definition at line 1403 of file TabsView.cs.

1404 {
1405 Gtk.FileChooserDialog filechooser =
1406 new Gtk.FileChooserDialog("Choose images to convert to stack.",
1407 this,
1408 FileChooserAction.Save,
1409 "Cancel", ResponseType.Cancel,
1410 "Save", ResponseType.Accept);
1411 filechooser.SelectMultiple = true;
1412 if (filechooser.Run() != (int)ResponseType.Accept)
1413 return;
1414 filechooser.Hide();
1415 BioImage b = BioImage.ImagesToStack(filechooser.Filenames, true);
1416 AddTab(b);
1417 }

◆ importROIsFromCSVMenuClick()

void BioGTK.TabsView.importROIsFromCSVMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the "Import ROIs from CSV" menu item

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes containing event data.

Definition at line 1473 of file TabsView.cs.

1474 {
1475 Gtk.FileChooserDialog filechooser = new Gtk.FileChooserDialog("Choose the file to open.",
1476 this,
1477 FileChooserAction.Open,
1478 "Cancel", ResponseType.Cancel,
1479 "Ok", ResponseType.Ok);
1480 filechooser.SelectMultiple = true;
1481 if (filechooser.Run() != (int)ResponseType.Ok)
1482 return;
1483 foreach (string item in filechooser.Filenames)
1484 {
1485 ImageView.SelectedImage.Annotations.AddRange(BioImage.ImportROIsCSV(item));
1486 }
1487 filechooser.Hide();
1488 }

◆ Open()

void BioGTK.TabsView.Open ( string file)

Open's a file in a new tab.

Parameters
tabNameThe filename of the image to add to tabcontrol

Definition at line 1692 of file TabsView.cs.

1693 {
1694 BioImage b = BioImage.OpenFile(file);
1695 ImageView view = ImageView.Create(b);
1696 if (!viewers.Contains(App.viewer))
1697 viewers.Add(view);
1698 Label dummy = new Gtk.Label(b.Filename);
1699 dummy.Text = b.Filename;
1700 dummy.UseMarkup = false;
1701 dummy.Visible = false;
1702 Label l = new Gtk.Label(b.Filename);
1703 l.Text = b.Filename;
1704 l.UseMarkup = false;
1705 tabsView.AppendPage(dummy, l);
1706 view.Present();
1707 }

◆ openImagesMenuClick()

async void BioGTK.TabsView.openImagesMenuClick ( object sender,
EventArgs a )
protected

It opens a file chooser dialog, and when the user selects a file, it creates a new BioImage object, creates a new ImageView object, and adds the ImageView object to the list of viewers

Parameters
senderThe object that raised the event.
EventArgsThe event arguments.
Returns
The response type of the dialog.

Definition at line 1100 of file TabsView.cs.

1101 {
1102 filechooser = new FileChooserDialog("Choose file to open", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1103 filechooser.SelectMultiple = true;
1104 if (filechooser.Run() != (int)ResponseType.Accept)
1105 return;
1106 string[] sts = filechooser.Filenames;
1107 filechooser.Hide();
1108 foreach (string item in sts)
1109 {
1110 StartProgress("Open File", "Opening");
1111 await BioImage.OpenAsync(item,false,true,true,0);
1112 BioImage im = Images.GetImage(item);
1113 AddTab(im);
1114 StopProgress();
1115 }
1116 }

◆ openOMEImagesMenuClick()

async void BioGTK.TabsView.openOMEImagesMenuClick ( object sender,
EventArgs a )
protected

It opens a file chooser dialog, and when the user selects a file, it opens the file and adds it to the list of open images

Parameters
senderThe object that sent the event.
EventArgsThe event arguments.
Returns
The response type of the dialog.

Definition at line 1124 of file TabsView.cs.

1125 {
1126 filechooser = new FileChooserDialog("Choose OME file to open", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1127 filechooser.SelectMultiple = true;
1128 if (filechooser.Run() != (int)ResponseType.Accept)
1129 return;
1130 filechooser.Hide();
1131 foreach (string item in filechooser.Filenames)
1132 {
1133 StartProgress("Open OME", "Opening");
1134 await BioImage.OpenAsync(item, true, true, true,0);
1135 BioImage im = Images.GetImage(item);
1136 AddTab(im);
1137 StopProgress();
1138 }
1139 }

◆ openOMESeriesMenuClick()

async void BioGTK.TabsView.openOMESeriesMenuClick ( object sender,
EventArgs a )
protected

It opens a file chooser dialog, and when the user selects a file, it opens the file as a BioImage, creates an ImageView for it, and adds the ImageView to the notebook

Parameters
senderThe object that sent the event.
EventArgsThe event arguments.
Returns
A list of file names.

Definition at line 1147 of file TabsView.cs.

1148 {
1149 filechooser = new FileChooserDialog("Choose OME Series file to open.", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1150 filechooser.SelectMultiple = true;
1151 if (filechooser.Run() != (int)ResponseType.Accept)
1152 return;
1153 filechooser.Hide();
1154 foreach (string item in filechooser.Filenames)
1155 {
1156 StartProgress("Open OME", "Opening");
1157 int s = BioImage.GetSeriesCount(item);
1158 for (int i = 0; i < s; i++)
1159 {
1160 await BioImage.OpenAsync(item, true, true, true, i);
1161 BioImage im = Images.GetImage(item);
1162 AddTab(im);
1163 }
1164 }
1165 tabsView.ShowAll();
1166
1167 }

◆ openSeriesMenuClick()

async void BioGTK.TabsView.openSeriesMenuClick ( object sender,
EventArgs a )
protected

It opens a file chooser dialog, and when the user selects a file, it opens the file as a series of images, and adds each image to the notebook

Parameters
senderThe object that raised the event.
EventArgsThe event arguments.
Returns
The response type of the dialog.

Definition at line 1175 of file TabsView.cs.

1176 {
1177 filechooser = new FileChooserDialog("Choose series file to open", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1178 filechooser.SelectMultiple = true;
1179 if (filechooser.Run() != (int)ResponseType.Accept)
1180 return;
1181 filechooser.Hide();
1182 foreach (string item in filechooser.Filenames)
1183 {
1184 StartProgress("Open OME Series", "Opening");
1185 await BioImage.OpenAsync(item, false, true, true, 0);
1186 BioImage im = Images.GetImage(item);
1187 AddTab(im);
1188 StopProgress();
1189 }
1190 tabsView.Show();
1191 }

◆ RemoveTab()

void BioGTK.TabsView.RemoveTab ( string tabName)

This function removes a tab from the tab control

Parameters
tabNameThe name of the tab to remove.

Definition at line 1667 of file TabsView.cs.

1668 {
1669 int i = 0;
1670 foreach (Widget item in tabsView.Children)
1671 {
1672 Gtk.Label l = item as Gtk.Label;
1673 string name = System.IO.Path.GetFileName(l.LabelMarkup);
1674 if (name == tabName)
1675 {
1676 ImageView iv = viewers[i];
1677 for (int v = 0; v < iv.Images.Count; v++)
1678 {
1679 Images.RemoveImage(iv.Images[v]);
1680 }
1681 tabsView.Remove(item);
1682 viewers.RemoveAt(i);
1683 App.nodeView.UpdateItems();
1684 return;
1685 }
1686 i++;
1687 }
1688 }

◆ RemoveViewer()

void BioGTK.TabsView.RemoveViewer ( ImageView v)

Definition at line 44 of file TabsView.cs.

45 {
46 viewers.Remove(v);
47 }

◆ RenameTab()

void BioGTK.TabsView.RenameTab ( string name,
string newName )

Definition at line 639 of file TabsView.cs.

640 {
641 int i = 0;
642 foreach (Widget item in tabsView.Children)
643 {
644 // Get the tab widget for the page and set the new title
645 Label l = (Label)tabsView.GetTabLabel(tabsView.GetNthPage(i));
646 if (l.Text == name)
647 {
648 l.Text = newName;
649 return;
650 }
651 }
652 }

◆ roiManagerMenuClick()

void BioGTK.TabsView.roiManagerMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the ROI Manager menu item

Parameters
senderThe object that raised the event.
EventArgsThis is the class that contains the event data.

Definition at line 1445 of file TabsView.cs.

1446 {
1447 App.roiManager = ROIManager.Create();
1448 App.roiManager.Show();
1449 App.roiManager.Present();
1450 }

◆ saveSelectedOMEClick()

async void BioGTK.TabsView.saveSelectedOMEClick ( object sender,
EventArgs a )
protected

This function saves the selected image in the OME-TIFF format

Parameters
senderThe object that triggered the event.
EventArgsThis is the event that is being called.
Returns
The response type of the filechooser dialog.

Definition at line 1343 of file TabsView.cs.

1344 {
1345 filechooser = new FileChooserDialog("Save Selected OME Image to File", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1346 if (filechooser.Run() != (int)ResponseType.Accept)
1347 return;
1348 filechooser.Hide();
1349 StartProgress("Save Selected OME", "Saving");
1350 await BioImage.SaveAsync(filechooser.Filename, ImageView.SelectedImage.ID, 0, true);
1351 StopProgress();
1352 }

◆ saveSelectedTiffClick()

async void BioGTK.TabsView.saveSelectedTiffClick ( object sender,
EventArgs a )
protected

It creates a file chooser dialog, and if the user selects a file, it saves the selected image to that file

Parameters
senderThe object that triggered the event.
EventArgsThis is the event that is being passed to the method.
Returns
The response type of the dialog.

Definition at line 1327 of file TabsView.cs.

1328 {
1329 filechooser = new FileChooserDialog("Save Selected Image To TIFF", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1330 if (filechooser.Run() != (int)ResponseType.Accept)
1331 return;
1332 filechooser.Hide();
1333 StartProgress("Save Selected Tiff","Saving");
1334 await BioImage.SaveAsync(filechooser.Filename,ImageView.SelectedImage.Filename, 0, false);
1335 StopProgress();
1336 }

◆ saveSeriesMenuClick()

async void BioGTK.TabsView.saveSeriesMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks the "Save Series" menu item

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes containing event data.

Definition at line 1389 of file TabsView.cs.

1390 {
1391 filechooser = new FileChooserDialog("Save TIFF series.", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1392 if (filechooser.Run() != (int)ResponseType.Accept)
1393 return;
1394 filechooser.Hide();
1395 StartProgress("Save Selected Tiff", "Saving");
1396 await BioImage.SaveSeriesAsync(App.viewer.Images.ToArray(), filechooser.Filename, true);
1397 StopProgress();
1398 }

◆ saveTabOMEClick()

async void BioGTK.TabsView.saveTabOMEClick ( object sender,
EventArgs a )
protected

This function saves the current series of images to an OME-TIFF file

Parameters
senderThe object that triggered the event.
EventArgsThe event arguments.
Returns
The response from the filechooser dialog.

Definition at line 1359 of file TabsView.cs.

1360 {
1361 filechooser = new FileChooserDialog("Save Tab as an OME image.", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1362 if (filechooser.Run() != (int)ResponseType.Accept)
1363 return;
1364 filechooser.Hide();
1365 StartProgress("Save Selected OME", "Saving");
1366 await BioImage.SaveSeriesAsync(App.viewer.Images.ToArray(), filechooser.Filename, true);
1367 StopProgress();
1368 }

◆ saveTabTiffMenuClick()

async void BioGTK.TabsView.saveTabTiffMenuClick ( object sender,
EventArgs a )
protected

It saves the current tab as a tiff file

Parameters
senderThe object that sent the event.
EventArgs
Returns
The response type of the filechooser dialog.

Definition at line 1375 of file TabsView.cs.

1376 {
1377 filechooser = new FileChooserDialog("Save Tab as an image.", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "OK", ResponseType.Accept);
1378 if (filechooser.Run() != (int)ResponseType.Accept)
1379 return;
1380 filechooser.Hide();
1381 StartProgress("Save Selected Tiff", "Saving");
1382 await BioImage.SaveSeriesAsync(App.viewer.Images.ToArray(), filechooser.Filename, false);
1383 StopProgress();
1384 }

◆ scriptRunnerMenuClick()

void BioGTK.TabsView.scriptRunnerMenuClick ( object sender,
EventArgs a )
protected

It's a function that runs when the user clicks on the "Script Runner" menu item

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments.

Definition at line 1646 of file TabsView.cs.

1647 {
1648 App.scripting = Scripting.Create();
1649 App.scripting.Show();
1650 App.scripting.Present();
1651 }

◆ SetImageJPath()

static bool BioGTK.TabsView.SetImageJPath ( )
static

This function creates a file chooser dialog that allows the user to select the location of the ImageJ executable

Returns
A boolean value.

Definition at line 307 of file TabsView.cs.

308 {
309 string st = BioLib.Settings.GetSettings("ImageJPath");
310 if (st != "")
311 {
312 Fiji.ImageJPath = BioLib.Settings.GetSettings("ImageJPath");
313 return true;
314 }
315 string title = "Select ImageJ Executable Location";
316 if (OperatingSystem.IsMacOS())
317 title = "Select ImageJ Executable Location (Fiji.app/Contents/MacOS/ImageJ-macosx)";
318 Gtk.FileChooserDialog filechooser =
319 new Gtk.FileChooserDialog(title, Scripting.window,
320 FileChooserAction.Open,
321 "Cancel", ResponseType.Cancel,
322 "Save", ResponseType.Accept);
323 filechooser.SetCurrentFolder(System.IO.Path.GetDirectoryName(Environment.ProcessPath));
324 if (filechooser.Run() != (int)ResponseType.Accept)
325 return false;
326 Fiji.ImageJPath = filechooser.Filename;
327 BioLib.Settings.AddSettings("ImageJPath", filechooser.Filename);
328 filechooser.Destroy();
329 BioLib.Settings.Save();
330 return true;
331 }

◆ SetTab()

void BioGTK.TabsView.SetTab ( int i)

Sets the current tab index.

Parameters
i

Definition at line 1027 of file TabsView.cs.

1028 {
1029 tabsView.Page = i;
1030 }

◆ setToolMenuClick()

void BioGTK.TabsView.setToolMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the "Tools" menu item

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1434 of file TabsView.cs.

1435 {
1436 App.setTool = SetTool.Create();
1437 App.setTool.Show();
1438 App.setTool.Present();
1439 }

◆ SetupHandlers()

void BioGTK.TabsView.SetupHandlers ( )
protected

This function sets up the event handlers for the menu items.

Definition at line 398 of file TabsView.cs.

399 {
400 openImagesMenu.ButtonPressEvent += openImagesMenuClick;
401 openOMEImagesMenu.ButtonPressEvent += openOMEImagesMenuClick;
402 openOMESeriesMenu.ButtonPressEvent += openOMESeriesMenuClick;
403 openSeriesMenu.ButtonPressEvent += openSeriesMenuClick;
404 openQuPathProject.ButtonPressEvent += openQuPathProjectMenuClick;
405 addImagesToTabMenu.ButtonPressEvent += addImagesToTabMenuClick;
406 addOMEImagesToTab.ButtonPressEvent += addOMEImagesToTabClick;
407 saveSelectedTiff.ButtonPressEvent += saveSelectedTiffClick;
408 saveSelectedOME.ButtonPressEvent += saveSelectedOMEClick;
409 saveNumPyBut.ButtonPressEvent += SaveNumPyBut_ButtonPressEvent;
410
411 saveTabOME.ButtonPressEvent += saveTabOMEClick;
412 saveTabTiffMenu.ButtonPressEvent += saveTabTiffMenuClick;
413 saveSeriesMenu.ButtonPressEvent += saveSeriesMenuClick;
414 savePyramidalMenu.ButtonPressEvent += SavePyramidalMenu_ButtonPressEvent;
415 saveQuPathProject.ButtonPressEvent += saveQuPathProject_ButtonPressEvent;
416 imagesToStack.ButtonPressEvent += imagesToStackClick;
417 uploadImageMenu.ButtonPressEvent += UploadImageMenu_ButtonPressEvent;
418
419 rgbMenu.ButtonPressEvent += RgbMenu_ButtonPressEvent;
420 filteredMenu.ButtonPressEvent += FilteredMenu_ButtonPressEvent;
421 rawMenu.ButtonPressEvent += RawMenu_ButtonPressEvent;
422 emissionMenu.ButtonPressEvent += EmissionMenu_ButtonPressEvent;
423
424 toolsMenu.ButtonPressEvent += toolsMenuClick;
425 setToolMenu.ButtonPressEvent += setToolMenuClick;
426 runSAMMenu.ButtonPressEvent += RunSAMMenu_ButtonPressEvent;
427 runMicroSAMMenu.ButtonPressEvent += RunMicroSAMMenu_ButtonPressEvent;
428 plateToolMenu.ButtonPressEvent += PlateToolMenu_ButtonPressEvent;
429 extractRegionMenu.ButtonPressEvent += ExtractRegionMenu_ButtonPressEvent;
430
431 roiManagerMenu.ButtonPressEvent += roiManagerMenuClick;
432 exportROIsToCSVMenu.ButtonPressEvent += exportROIsToCSVMenuClick;
433 importROIsFromCSVMenu.ButtonPressEvent += importROIsFromCSVMenuClick;
434 exportROIsOfFolderOfImagesMenu.ButtonPressEvent += exportROIsOfFolderOfImagesMenuClick;
435 importROIsFromImageJMenu.ButtonPressEvent += ImportROIsFromImageJMenu_ButtonPressEvent;
436 exportROIsFromImageJMenu.ButtonPressEvent += ExportROIsFromImageJMenu_ButtonPressEvent;
437 importROIQuPath.ButtonPressEvent += ImportROIQuPath_ButtonPressEvent;
438 exportROIQuPath.ButtonPressEvent += ExportROIQuPath_ButtonPressEvent;
439 importPointsNapari.ButtonPressEvent += ImportPointsNapari_ButtonPressEvent;
440 importShapesNapari.ButtonPressEvent += ImportShapesNapari_ButtonPressEvent;
441 exportROINapari.ButtonPressEvent += ExportROINapari_ButtonPressEvent;
442
443 autoThresholdAllMenu.ButtonPressEvent += autoThresholdAllMenuClick;
444 channelsToolMenu.ButtonPressEvent += channelsToolMenuClick;
445 switchRedBlueMenu.ButtonPressEvent += switchRedBlueMenuClick;
446
447 stackToolMenu.ButtonPressEvent += stackToolMenuClick;
448 focusMenu.ButtonPressEvent += FocusMenu_ButtonPressEvent;
449
450 to8BitMenu.ButtonPressEvent += to8BitMenuClick;
451 to16BitMenu.ButtonPressEvent += to16BitMenuClick;
452 to24BitMenu.ButtonPressEvent += to24BitMenuClick;
453 to32BitMenu.ButtonPressEvent += to32BitMenuClick;
454 to48BitMenu.ButtonPressEvent += to48BitMenuClick;
455 toFloatMenu.ButtonPressEvent += ToFloatMenu_ButtonPressEvent;
456 toShortMenu.ButtonPressEvent += ToShortMenu_ButtonPressEvent;
457
458 filtersMenu.ButtonPressEvent += filtersMenuClick;
459 functionsToolMenu.ButtonPressEvent += functionsToolMenuClick;
460 consoleMenu.ButtonPressEvent += consoleMenuClick;
461 scriptRunnerMenu.ButtonPressEvent += scriptRunnerMenuClick;
462 scriptRecorderMenu.ButtonPressEvent += ScriptRecorderMenu_ButtonPressEvent;
463
464 aboutMenu.ButtonPressEvent += AboutClick;
465
466 tabClose.ButtonPressEvent += TabClose_ButtonPressEvent;
467 tabDuplicate.ButtonPressEvent += TabDuplicate_ButtonPressEvent;
468 this.FocusInEvent += TabsView_FocusInEvent;
469 rgbMenu.ButtonPressEvent += RgbMenu_ButtonPressEvent;
470 filteredMenu.ButtonPressEvent += FilteredMenu_ButtonPressEvent;
471 rawMenu.ButtonPressEvent += RawMenu_ButtonPressEvent;
472 emissionMenu.ButtonPressEvent += EmissionMenu_ButtonPressEvent;
473 tabsView.SwitchPage += TabsView_SwitchPage;
474 tabsView.ButtonPressEvent += TabsView_ButtonPressEvent;
475 this.WindowStateEvent += TabsView_WindowStateEvent;
476 this.DeleteEvent += TabsView_DeleteEvent;
477 omeroMenu.ButtonPressEvent += OmeroMenu_ButtonPressEvent;
478
479 searchMenu.ButtonPressEvent += SearchMenu_ButtonPressEvent;
480 updateMenu.ButtonPressEvent += UpdateMenu_ButtonPressEvent;
481 renameMenu.ButtonPressEvent += RenameMenu_ButtonPressEvent;
482 AIMenu.ButtonPressEvent += AiMenu_ButtonPressEvent;
483
484 // Enable drag-and-drop for this window
485 Gtk.Drag.DestSet(this, DestDefaults.All, new TargetEntry[]
486 {
487 new TargetEntry("text/uri-list", TargetFlags.OtherApp, 0)
488 }, Gdk.DragAction.Copy);
489 this.DragDataReceived += TabsView_DragDataReceived;
490
491 }
void to32BitMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1598
async void addImagesToTabMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1245
void AboutClick(object sender, EventArgs a)
Definition TabsView.cs:1657
void exportROIsOfFolderOfImagesMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1494
async void saveSelectedTiffClick(object sender, EventArgs a)
Definition TabsView.cs:1327
void exportROIsToCSVMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1456
void to8BitMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1574
async void saveSelectedOMEClick(object sender, EventArgs a)
Definition TabsView.cs:1343
void autoThresholdAllMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1523
void to48BitMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1606
async void openOMESeriesMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1147
void to16BitMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1582
async void saveTabOMEClick(object sender, EventArgs a)
Definition TabsView.cs:1359
async void openSeriesMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1175
void filtersMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1615
void functionsToolMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1626
async void openImagesMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1100
void scriptRunnerMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1646
void toolsMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1423
void stackToolMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1563
async void openOMEImagesMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1124
void channelsToolMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1537
void imagesToStackClick(object sender, EventArgs a)
Definition TabsView.cs:1403
async void saveSeriesMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1389
void to24BitMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1590
async void addOMEImagesToTabClick(object sender, EventArgs a)
Definition TabsView.cs:1269
void switchRedBlueMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1549
void consoleMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1636
void importROIsFromCSVMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1473
async void saveTabTiffMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1375
void setToolMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1434
void roiManagerMenuClick(object sender, EventArgs a)
Definition TabsView.cs:1445

◆ stackToolMenuClick()

void BioGTK.TabsView.stackToolMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the stack tool menu item

Parameters
senderThe object that raised the event.
EventArgsThe event arguments.

Definition at line 1563 of file TabsView.cs.

1564 {
1565 App.stack = StackTools.Create();
1566 App.stack.Show();
1567 App.stack.Present();
1568 }

◆ switchRedBlueMenuClick()

void BioGTK.TabsView.switchRedBlueMenuClick ( object sender,
EventArgs a )
protected

This function is called when the user clicks on the "Switch Red and Blue" menu item

Parameters
senderThe object that raised the event.
EventArgsThe EventArgs class is the base class for classes that contain event data.

Definition at line 1549 of file TabsView.cs.

1550 {
1551 foreach (AForge.Bitmap bf in ImageView.SelectedImage.Buffers)
1552 {
1553 bf.SwitchRedBlue();
1554 }
1555 App.viewer.UpdateImage();
1556 App.viewer.UpdateView();
1557 }

◆ to16BitMenuClick()

void BioGTK.TabsView.to16BitMenuClick ( object sender,
EventArgs a )
protected

This function converts the selected image to 16 bit

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1582 of file TabsView.cs.

1583 {
1584 ImageView.SelectedImage.To16Bit();
1585 }

◆ to24BitMenuClick()

void BioGTK.TabsView.to24BitMenuClick ( object sender,
EventArgs a )
protected

This function converts the selected image to 24 bit

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1590 of file TabsView.cs.

1591 {
1592 ImageView.SelectedImage.To24Bit();
1593 }

◆ to32BitMenuClick()

void BioGTK.TabsView.to32BitMenuClick ( object sender,
EventArgs a )
protected

It converts the selected image to 32 bit

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1598 of file TabsView.cs.

1599 {
1600 ImageView.SelectedImage.To32Bit();
1601 }

◆ to48BitMenuClick()

void BioGTK.TabsView.to48BitMenuClick ( object sender,
EventArgs a )
protected

This function converts the selected image to 48 bit

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1606 of file TabsView.cs.

1607 {
1608 ImageView.SelectedImage.To48Bit();
1609 }

◆ to8BitMenuClick()

void BioGTK.TabsView.to8BitMenuClick ( object sender,
EventArgs a )
protected

The function is called when the user clicks on the "To 8-bit" menu item

Parameters
senderThe object that raised the event.
EventArgsThis is the event arguments that are passed to the event handler.

Definition at line 1574 of file TabsView.cs.

1575 {
1576 ImageView.SelectedImage.To8Bit();
1577 }

◆ toolsMenuClick()

void BioGTK.TabsView.toolsMenuClick ( object sender,
EventArgs a )
protected

If the tools window is not open, open it

Parameters
senderThe object that raised the event.
EventArgsThe event arguments.

Definition at line 1423 of file TabsView.cs.

1424 {
1425 if(App.tools == null)
1426 App.tools = Tools.Create();
1427 App.tools.Show();
1428 App.tools.Present();
1429 }

Member Data Documentation

◆ ImageJMenu

MenuBar BioGTK.TabsView.ImageJMenu

Definition at line 55 of file TabsView.cs.

◆ MainMenu

MenuBar BioGTK.TabsView.MainMenu

Definition at line 69 of file TabsView.cs.


The documentation for this class was generated from the following file: