GTKD TreeView - Delete TreeView SubItem with Button?
Michael Robertson via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Nov 20 10:10:03 PST 2015
On Friday, 20 November 2015 at 17:09:50 UTC, TheDGuy wrote:
> Hello,
>
> is it possible, to delete a selected TreeView SubItem with a
> Button-Click?
>
> My Code currently looks like this:
>
> import gtk.MainWindow;
> import gtk.Box;
> import gtk.Main;
>
> import gtk.Button;
> import gdk.Event;
> import gtk.Widget;
>
> import List, Languages;
>
> void main(string[] args){
> Main.init(args);
> MainWindow win = new MainWindow("TreeView Example");
> win.setDefaultSize(500,300);
>
> Box box = new Box(Orientation.VERTICAL, 0);
>
> auto list = new List();
> auto german = list.addCountry("German", "Germany");
> auto city = list.addCountryCity(german, "German", "Munich");
>
> auto sweden = list.addCountry("Swedish", "Sweden");
> auto cit = list.addCountryCity(sweden, "Swedish", "Stockholm");
>
> auto treeView = new LanguageTree(list);
> box.packStart(treeView, true, true, 0);
>
> auto btn_Delete = new Button("Delete");
> box.add(btn_Delete);
>
> win.add(box);
> win.showAll();
> Main.run();
> }
>
> class DeleteButton : Button
> {
> this(in string text)
> {
> super(text);
> addOnButtonRelease(&del);
> }
> private bool del(Event event, Widget widget)
> {
> return true;
> }
>
> }
>
> But i neither know how i get the currently selected item nor
> how i could delete it within the "del"-Event of the
> "DeleteButton"?
TreeIter iter = treeView.getSelectedIter;
then you can use the TreeIter to delete the item.
If your List is a ListStore or TreeStore, it has a remove method
that you can call.
If its a custom store you will have to implement it yourself like
this
class List:TreeModel
{
.....
void remove(TreeIter iter)
{
//maybe remove item from your actual data structure or other
processing
//send rowDeleted signal
rowDeleted(iter);
}
.....
}
More information about the Digitalmars-d-learn
mailing list