Author: matt
Date: 2007-11-19 07:46:03 -0800 (Mon, 19 Nov 2007)
New Revision: 5978
Log:
STR #1767: Adding "remove" function for the Fl_Check_Browser

Modified:
   branches/branch-1.1/src/Fl_Check_Browser.cxx

Modified: branches/branch-1.1/src/Fl_Check_Browser.cxx
===================================================================
--- branches/branch-1.1/src/Fl_Check_Browser.cxx        2007-11-19 15:13:45 UTC 
(rev 5977)
+++ branches/branch-1.1/src/Fl_Check_Browser.cxx        2007-11-19 15:46:03 UTC 
(rev 5978)
@@ -193,6 +193,40 @@
        return (nitems_);
 }
 
+int Fl_Check_Browser::remove(int item) {
+  cb_item *p = find_item(item);
+  cb_item *prev;
+  cb_item *next;
+  
+  // line at item exists
+  if(p) {
+    // tell the Browser_ what we will do
+    deleting(p);
+
+    // fix checked count
+    if(p->checked)
+      --nchecked_;
+    
+    // remove the node
+    if (p->prev) 
+      p->prev->next = p->next;
+    else 
+      first = p->next;
+    if (p->next) 
+      p->next->prev = p->prev;
+    else 
+      last = p->prev;
+    
+    free(p->text);
+    free(p);
+    
+    --nitems_;
+    cached_item = -1;
+  }
+  
+  return (nitems_);
+}
+
 void Fl_Check_Browser::clear() {
        cb_item *p = first;
        cb_item *next;

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to