Add a cell renderer using Glade - gtk

I'm using Glade to build a GTK user interface for my Rust program.
The issue is that items that are added to the ListStore are not showing up. I have horizontal lines set up that show up, but the text of the items is not showing up. I Googled and I suspect it's because of the cell renderers. I have tried to add a cell renderer in Glade, however I didn't see anywhere where could I do that. I right click on the treeview, click Edit, right click on the row/column but nothing about cell renderers is displayed.
How can I add a cell renderer using Glade?
$ glade --version
glade 3.22.1

It's very hard to find. I search lots of tutorial but many of them are very old, so the interface was quite different.
Right click GtkTreeView and choose "Edit"
On top left sub area, click blue "+" sign to add a new column.
right click newly created column, choose add child text
You will see Cell Render area showing up to the right.
In "Properties and Attributes", set "Text" properties to the column you wish to present.

Related

How to split a Jupyter notebook into several slides?

Jupyter allows to produce slides either via nbconvert or (even better) dynamically and within a notebook with RISE.
However, when I launch RISE on my notebook or create slides with nbconvert, it creates only a single (potentially huge) slide. I thought it would/could automatically split at every header lines, but it does not.
How can I split the notebook into different slides?
You need to bring in a specific tool that is not shown by default. In the notebook, go to
View > Cell Toolbar > Slideshow
and a drop-down menu now appears at the right end of each cell, showing a "slide label" (my terminology).
By default, the label is -, meaning that the cell is part of the same block than the cell above.
If you change the label to slide, the cell is now the first cell of a new slide. (new slide would probably be a better label indeed).
You will find other labels too that closely follow Reveal.js' way of working:
The subslide label correspond also to a new slide, but placed in a "vertical stack" so dear to Reveal.js. fragments are used for progressive display of the elements of a slide. skip cells are not displayed, and notes are for speaker notes.

NSOutlineView disclosure triangle vertically off center

I'm working with an NSOutlineView on a macOS app and it provides disclosure triangles for items that can be expanded.
I'm also creating custom NSTableCellView items rather than using basic cell items. This allows me to create the cell how I want visually.
My issue is that when they're displayed, the disclosure triangle on the left is not centered vertically.
Notice how the disclosure triangles are not aligned properly. They're a bit lower than they should be. If you scroll away and come back, sometimes, they automatically align themselves correctly. Has anyone been able to fix this issue before?
For what it's worth, I'm using the following code as well for the cells.
self.outlineView.rowHeight = CGFloat(integerLiteral: 66)
self.outlineView.usesAutomaticRowHeights = true
It's hard to figure out what the problem is without seeing how you've set up your project, but I'm going to give it shot.
First, when usesAutomaticRowHeights is set to true, the outline view uses Auto Layout to position the cell views. Thus, you need to be utilizing constraints in your Storyboard or Nib file, or things will behave strangely (see: your picture). If I had to guess, the prototype cell view you set up in Interface Builder is having its autoresizingMask translated into Auto Layout constraints (which, generally, causes a boatload of problems).
What I would do is this:
Open up the Storyboard or Nib document containing the outline view.
Locate the prototype NSTableCellView instance that contains the street name text field in the Document Outline to the left of the canvas. (If you don't see the Document Outline, you can open it by clicking the item at Editor » Show Document Outline in the main menu).
Next, see if you have any constraints in place. If you do, remove them by selecting Editor » Resolve Auto Layout Issues » Clear Constraints under the menu item "section" that's titled All Views in ${YOUR_SCENE}.
Now, depending on what you're going for, there are different ways to go about setting up constraints, but here's what I would suggest. Assuming you want the street name to be centered vertically with the disclosure triangle, I would add a vertical constraint between the text field and its parent cell view like so:
With the text field selected in the Document Outline, click the Align icon in the lower right-hand corner of Interface Builder's main canvas area (see image).
In the popover that appears, check the checkbox next to Vertically in Container.
In the text field on the right side of the popover, enter a value of “0”.
Finally, click the “Add 1 Constraint” button.
You’ll probably see a red error (or yellow warning) sign show up, as the view has now opted into Auto Layout, but it only has a metric for its vertical position. So we now need to add some constraints to describe where the text field should be positioned on the x axis. Like before, we’ll define the constraints using the popover buttons on the lower right-hand side of the canvas:
Click the Add New Constraints button (the one to the right of the Align button).
On the diagram at the top of the popover, click the faint red lines on the left and right side of the white rectangle. This is telling Interface Builder we want to add leading and trailing constraints.
Now, enter the desired padding you want on each side of the text field. In the example image, I went with “4” points on both sides, but obviously, you can use whatever value(s) you think works best with your layout.
Finally, click the “Add 2 Constraints” button.
Any warning(s) that were present should now disappear, as we've added enough constraints to describe the position of the text field. In theory, you should now be able to build and run your project, and the text fields should be aligned with the disclosure triangles. With that said, there are plenty of other reasons a layout can get finicky, and considering usesAutomaticRowHeights is a new API in macOS High Sierra (and Steve Jobs is no longer there to beat it into Apple developers to make everything Just Work™), there could be issues that I'm unaware of.
Alternatively, you can set usesAutomaticRowHeights to false and have some object (e.g. a view controller, a NSObject subclass, etc.) conform to the NSOutlineViewDelegate protocol and implement the outlineView(_:heightOfRowByItem:) method to return any arbitrary height you want for different rows. The nice thing about sizing rows this way is that you can allow certain rows to be larger or smaller, depending on the role of the corresponding item. There are lots of tutorials on this, so I won't regurgitate a half-baked explanation here, but feel free to Google “Conforming to NSOutlineViewDelegate protocol” for more info.
Anyway, try the steps above, and see if they do anything for you, and if they don't, let me know. I can go as deep into the rabbit hole with you as you need, so just ask. Good luck!
For those like me who stumbled upon this issue many years later, here's the fix that worked for me, and requires a lot less work.
NSOutlineView has a function frameOfOutlineCell(atRow:) and the documentation states: You can override this method in a subclass to return a custom frame for the outline button cell
You can override the method in order to provide a frame that's actually in the vertical center of the row. And an important point that I learned from trial and error, is that you don't even need to provide that updated frame. Not sure if this is a bug or what, but for me, just calling super.frameOfOutlineCell(atRow: row) in the function override was enough to make the disclosure indicator appear in the correct location.
So my subclass of NSOutlineView is this:
class MyOutlineView: NSOutlineView {
override func frameOfOutlineCell(atRow row: Int) -> NSRect {
super.frameOfOutlineCell(atRow: row)
}
}
That's all. Hopefully that works for others as well!

JavaFX 8, how to hide a pane in Splitpane?

I have a splitpane created from FXML that consists of Three panes left to right. I want to be able to hide the rightmost pane but I can't find anything to hide it. If I turn of the visibility it hides the pane content. What I want is to temporarily hide it, so the pane is removed visually.
As a temporary workaround I move the divider to 100%, but this leaves the divider visible. Another side-effect is that if I resize the main window the divider doesn't stay at the rightmost position.
Any tips on hiding one pane in splitpane?
Or any tips on the best way to achieve this without splitpane(rightmost pane needs to be resizable when not hidden). General pointers to techniques/containers would be appreciated since I'm new to Java/JavaFX but not to programming :)
Seems I've found it, even thought it's not a plain hide/show deal. My splitpane is named "mainSplitPane", and the one I want to hide/show is the third. Upon initialization of the controller I retrieve the third pane and store it in "componentsPane".
Declared in controllerclass:
Node componentsPane;
Called in initialize method of the controllerclass:
componentsPane=mainSplitPane.getItems().get(2);
Code to hide:
mainSplitPane.getItems().remove(componentsPane);
And code to show:
mainSplitPane.getItems().add(2, componentsPane);
mainSplitPane.setDividerPosition(1, 0.8);
A side effect is that I have to set dividerposition since it's removed.

GWT menu item text alignments issues

Is it possible in GWT to set Menu Item text in two different alignments,what I mean to say is
I want my menu item's label to be left justified and its accelerator key to be right justified.
i.e,
Create Alt+Ctrl+C
Edit Shift+E
Optimize Ctrl+O
There's a "boolean asHTML" option when creating menu items, set that to true, then use CSS to left align and right align the text you want to align.
See the docs: http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client/ui/MenuItem.html

Customize UIMuenuitem title

I am using the table to display a list of members and when I click a cell in the table I am creating some custom menu items and showing the menu by customizing the cellview class. Now we have total 6 menu items and some of them are long in length, is there any way I can wrap the menu title so that we have enough space to display all the menu items?. While creating the menu item i tried to give the "\n" in the title but no use.
Also I would like to group the menu items so for this i will like to show 3 of them in different color. can we set the text color to the menu item so that 3 of them are in one color and other 3 are in different.
Please let me know if have any solution of the above two tasks.
Thanks.
As far as I know both are not possible. You might want to look into creating your own menu code. Which is not terribly difficult. If you are on iOS 4 then just create a long tap gesture recognizer and then show a transparent view with graphics of your menu. This view can contain simple transparent buttons. It is not standard at all but very doable.