function test_lists($window)
{
    // ListView
    $list = wb_get_control($window, IDC_LISTVIEW2027);
    wb_set_text($list, array(array("Home", 120), "Status", array("More", 50), array(0, 80)));
    wb_create_items($list, array(array("0", "First", "Done", "Less"), array(0, 0, "Second", "Hi"), array(200, 300, "Hi!", 876)));
    wb_set_text($list, array(444, 555, 666));
    //	wb_set_style($list, WBC_CHECKBOXES);
    wb_set_image($list, PATH_RES . "treeview.bmp", 0, GREEN, 10);
    //	wb_set_item_image($list, array(1, 1), 4);
    //	wb_delete_items($list, 0);
    wb_set_value($list, array(1, 2));
    wb_set_value($list, array(1, 3));
    //	wbtemp_set_listview_item_checked($list, 0, 1);
    // ListView II
    $list = wb_get_control($window, IDC_LISTVIEW2067);
    wb_set_text($list, array("No grid lines", "on this control!"));
    wb_create_items($list, array(array("To do this,", "set"), array("the control style", "to WS_BORDER")));
    // List boxes / combo boxes
    wb_set_text(wb_get_control($window, IDC_LISTBOX2018), "List 1\r\nOne more\rAnother\nEtc.\r\nMore...");
    wb_set_text(wb_get_control($window, IDC_COMBOBOX2010), array("Option 1", "Option 2", "More", "Etc."));
    wb_set_value(wb_get_control($window, IDC_UPDOWN2069), null, 0, 3);
    // Handler
    //	wb_set_handler($window, "process_test_lists");
}
function reset_company_view()
{
    global $wb;
    // Empty listview
    wb_delete_items(wb_get_control($wb->right_control, IDC_COMPANY_LIST), null);
    $keyword = $wb->keyword;
    $where_is = " where 1 ";
    if ($keyword) {
        $where_is .= " AND name LIKE '%{$keyword}%' ";
    }
    $max_row = 22;
    $table_name = $wb->setting["Settings"]["company_table"];
    $start_num = ($wb->current_page - 1) * $max_row;
    $sql = " SELECT COUNT(*) AS num FROM {$table_name} {$where_is} ";
    $wb->db->query($sql);
    $wb->db->next_record();
    $total_num = $wb->db->f("num");
    $wb->total_page = ceil($total_num / $max_row);
    include PATH_CONFIG . "common.php";
    $sql = " SELECT * FROM {$table_name} {$where_is} ORDER BY id DESC LIMIT {$start_num}," . $max_row;
    $wb->db->query($sql);
    $data = array();
    while ($wb->db->next_record()) {
        $row = array();
        $row[] = $wb->db->f("id");
        $row[] = $wb->db->f("name");
        $row[] = $wb->db->f("link_man");
        $row[] = $wb->db->f("phone");
        $row[] = $wb->db->f("email");
        $row[] = $wb->db->f("addrees");
        $data[] = $row;
    }
    // Create listview items
    wb_create_items(wb_get_control($wb->right_control, IDC_COMPANY_LIST), $data);
    //	navigator
    wb_set_text(wb_get_control($wb->right_control, IDC_NAV_BAR), $wb->vars["Lang"]["lang_total"] . " " . $total_num . " " . $wb->vars["Lang"]["lang_records"] . " " . $wb->vars["Lang"]["lang_current"] . $wb->current_page . "/" . $wb->total_page . " " . $wb->vars["Lang"]["lang_page"]);
    wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_PRE), true);
    wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_FIRST), true);
    wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_NEXT), true);
    wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_LAST), true);
    if ($wb->current_page == $wb->total_page) {
        wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_NEXT), false);
        wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_LAST), false);
    }
    if ($wb->current_page == 1) {
        wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_PRE), false);
        wb_set_enabled(wb_get_control($wb->right_control, IDC_NAV_FIRST), false);
    }
}
<?php

/**
 *
 * yc_main.form.inc.php
 *
 * @package    core
 * @author     John.meng <*****@*****.**>
 * @author     цот╤РШ
 * @author     QQ:3440895
 * @version    CVS: $Id: yc_main.form.inc.php,v 1.2 2006/12/24 01:17:28 arzen Exp $
 */
include_once PATH_FORM . "yc_main.form.php";
wb_set_image($wb->tree_view, PATH_RES . "treeview.bmp", GREEN, 0, 10);
$items = wb_create_items($wb->tree_view, array(array($wb->vars["Lang"]["lang_cust"] . $wb->vars["Lang"]["lang_manage"], 2001), array($wb->vars["Lang"]["lang_contact"], 2002, 1), array($wb->vars["Lang"]["lang_company"], 2003, 1), array($wb->vars["Lang"]["lang_product"], 2004, 1), array($wb->vars["Lang"]["lang_sale"] . $wb->vars["Lang"]["lang_manage"], 2005), array($wb->vars["Lang"]["lang_opportunity"], 2006, 1), array($wb->vars["Lang"]["lang_order"], 2007, 1), array($wb->vars["Lang"]["lang_agreement"], 2008, 1), array($wb->vars["Lang"]["lang_afterservice"] . $wb->vars["Lang"]["lang_manage"], 2009), array($wb->vars["Lang"]["lang_complaints"], 2010, 1), array($wb->vars["Lang"]["lang_refundment"], 2011, 1), array($wb->vars["Lang"]["lang_review"], 2012, 1)));
wb_set_state($wb->tree_view, $items[0], true);
wb_set_state($wb->tree_view, $items[4], true);
wb_set_state($wb->tree_view, $items[8], true);
function wb_set_text($ctrl, $text, $item = null, $subitem = null)
{
    if (!$ctrl) {
        return null;
    }
    switch (wb_get_class($ctrl)) {
        case ListView:
            if ($item !== null) {
                if (!is_array($text) && $subitem !== null) {
                    // Set text of a ListView cell according to $item and $subitem
                    wbtemp_set_listview_item_text($ctrl, $item, $subitem, $text);
                } else {
                    // Set text of several ListView cells, ignoring $subitem
                    for ($sub = 0; $sub < count($text); $sub++) {
                        if ($text) {
                            if ($text[$sub] !== null) {
                                wbtemp_set_listview_item_text($ctrl, $item, $sub, (string) $text[$sub]);
                            }
                        } else {
                            wbtemp_set_listview_item_text($ctrl, $item, $sub, "");
                        }
                    }
                }
            } else {
                if (!is_array($text)) {
                    $text = explode(",", $text);
                }
                wb_delete_items($ctrl, null);
                if (!$item) {
                    wbtemp_clear_listview_columns($ctrl);
                    // Create column headers
                    // In the loop below, passing -1 as the 'width' argument of wbtemp_create_listview_column()
                    // makes it calculate the column width automatically
                    for ($i = 0; $i < count($text); $i++) {
                        if (is_array($text[$i])) {
                            wbtemp_create_listview_column($ctrl, $i, (string) $text[$i][0], isset($text[$i][1]) ? (int) $text[$i][1] : -1, isset($text[$i][2]) ? (int) $text[$i][2] : WBC_LEFT);
                        } else {
                            wbtemp_create_listview_column($ctrl, $i, (string) $text[$i], -1, 0);
                        }
                    }
                }
            }
            break;
        case ListBox:
            if (!$text) {
                wb_delete_items($ctrl);
            } elseif (is_string($text)) {
                if (strchr($text, "\r") || strchr($text, "\n")) {
                    $text = preg_split("/[\r\n,]/", $text);
                    wb_delete_items($ctrl);
                    foreach ($text as $str) {
                        wbtemp_create_item($ctrl, (string) $str);
                    }
                } else {
                    $index = wb_send_message($ctrl, LB_FINDSTRINGEXACT, -1, wb_get_address($text));
                    wb_send_message($ctrl, LB_SETCURSEL, $index, 0);
                }
            } elseif (is_array($text)) {
                wb_delete_items($ctrl);
                foreach ($text as $str) {
                    wbtemp_create_item($ctrl, (string) $str);
                }
            }
            return;
        case ComboBox:
            if (!$text) {
                wb_delete_items($ctrl);
            } elseif (is_string($text)) {
                if (strchr($text, "\r") || strchr($text, "\n")) {
                    $text = preg_split("/[\r\n,]/", $text);
                    wb_delete_items($ctrl);
                    foreach ($text as $str) {
                        wbtemp_create_item($ctrl, (string) $str);
                    }
                } else {
                    $index = wb_send_message($ctrl, CB_FINDSTRINGEXACT, -1, wb_get_address($text));
                    wb_send_message($ctrl, CB_SETCURSEL, $index, 0);
                    if ($index == -1) {
                        wb_send_message($ctrl, WM_SETTEXT, 0, wb_get_address($text));
                    }
                }
            } elseif (is_array($text)) {
                wb_delete_items($ctrl);
                foreach ($text as $str) {
                    wbtemp_create_item($ctrl, (string) $str);
                }
            }
            return;
        case TreeView:
            if ($item) {
                return wbtemp_set_treeview_item_text($ctrl, $item, $text);
            } else {
                return wb_create_items($ctrl, $text, true);
            }
        default:
            // The (string) cast below works well but is a temporary fix, must be
            // removed when wbtemp_set_text() accepts numeric types correctly
            if (is_array($text)) {
                return wbtemp_set_text($ctrl, $text, $item);
            } else {
                return wbtemp_set_text($ctrl, (string) $text, $item);
            }
    }
}
 function reset_category_listview($keyword = "")
 {
     global $wb;
     // Empty listview
     wb_delete_items($this->category_list, null);
     $where_is = " where 1 ";
     if ($keyword) {
         $where_is .= " AND category_name LIKE '%{$keyword}%' ";
     }
     $category_table_name = $wb->setting["Settings"]["contact_category_table"];
     $start_num = ($wb->current_category_page - 1) * $this->max_row;
     $sql2 = " SELECT * FROM {$category_table_name} {$where_is} ";
     $wb->db->query($sql2);
     $this->total_category_num = $wb->db->num_rows();
     $wb->total_category_page = ceil($this->total_category_num / $this->max_row);
     $sql2 = " SELECT * FROM {$category_table_name} {$where_is} ORDER BY id DESC LIMIT {$start_num}," . $this->max_row;
     $wb->db->query($sql2);
     $category_data = array();
     while ($wb->db->next_record()) {
         $row = array();
         $row[] = $wb->db->f("id");
         $row[] = $wb->db->f("category_name");
         $row[] = $wb->db->f("active");
         $category_data[] = $row;
     }
     // Create listview items
     wb_create_items($this->category_list, $category_data);
     //category navigator
     $dim = wb_get_size($this->left_control, true);
     $nav_button_y = $dim[1] - 280;
     $nav_button_x = 80 + 150;
     $nav_button_space = 120;
     wb_create_control($this->left_control, Label, $wb->vars["Lang"]["lang_total"] . " " . $this->total_category_num . " " . $wb->vars["Lang"]["lang_records"] . " " . $wb->vars["Lang"]["lang_current"] . $wb->current_category_page . "/" . $wb->total_category_page . " " . $wb->vars["Lang"]["lang_page"], 20, $nav_button_y + 5, 150, 14, 0, WBC_VISIBLE, 0, 1);
     $category_nav_first = wb_create_control($this->left_control, PushButton, $wb->vars["Lang"]["lang_first_page"], $nav_button_x, $nav_button_y, 80, 22, IDC_CATEGORY_NAV_FIRST, WBC_VISIBLE, 0, 1);
     $category_nav_pre = wb_create_control($this->left_control, PushButton, $wb->vars["Lang"]["lang_pre_page"], $nav_button_x + $nav_button_space, $nav_button_y, 80, 22, IDC_CATEGORY_NAV_PRE, WBC_VISIBLE, 0, 1);
     $category_nav_next = wb_create_control($this->left_control, PushButton, $wb->vars["Lang"]["lang_next_page"], $nav_button_x + $nav_button_space * 2, $nav_button_y, 80, 22, IDC_CATEGORY_NAV_NEXT, WBC_VISIBLE, 0, 1);
     $category_nav_last = wb_create_control($this->left_control, PushButton, $wb->vars["Lang"]["lang_last_page"], $nav_button_x + $nav_button_space * 3, $nav_button_y, 80, 22, IDC_CATEGORY_NAV_LAST, WBC_VISIBLE, 0, 1);
     //category
     if ($wb->current_category_page == $wb->total_category_page) {
         wb_set_enabled($category_nav_next, false);
         wb_set_enabled($category_nav_last, false);
     }
     if ($wb->current_category_page == 1) {
         wb_set_enabled($category_nav_pre, false);
         wb_set_enabled($category_nav_first, false);
     }
 }
function reset_form($class, $parent, $title, $width, $height, $style = 0, $value = 0)
{
    global $wb;
    $wb->currentform = 0;
    $wb->proj_filename = null;
    if (!isset($wb->form[$wb->currentform])) {
        $wb->form[$wb->currentform] = new stdclass();
    }
    // Reset form data with fixed attributes
    $wb->form[$wb->currentform]->ct = array();
    $wb->form[$wb->currentform]->numcontrols = 0;
    $wb->form[$wb->currentform]->ncurrindex = 0;
    $wb->form[$wb->currentform]->nselcontrol = -1;
    $wb->form[$wb->currentform]->treenode = 0;
    foreach ($wb->project_array as $var) {
        $wb->form[$wb->currentform]->{$var} = constant("DEFAULT_" . strtoupper($var));
    }
    // Variable attributes
    $wb->form[$wb->currentform]->width = $width;
    $wb->form[$wb->currentform]->height = $height;
    $wb->form[$wb->currentform]->caption = $title;
    $wb->form[$wb->currentform]->cclass = $class;
    $wb->form[$wb->currentform]->style = (int) $style;
    $wb->form[$wb->currentform]->value = (int) $value;
    // Resize, reposition and show form
    $pos = wb_get_position($parent);
    wb_set_position($wb->formwin, $pos[0] + 180, $pos[1] + 76);
    wb_set_size($wb->formwin, $width, $height);
    wb_set_text($wb->formwin, $title);
    wb_set_visible($wb->formwin, true);
    // Create a treeview item for this form
    wb_delete_items($wb->tree, $wb->form[$wb->currentform]->treenode);
    $root = $wb->rootnode;
    $node = wb_create_items($wb->tree, array(array($title, $wb->currentform, $root, 8, 9, 2)));
    $wb->form[$wb->currentform]->treenode = $node;
    // numforms is always set to 1
    $wb->numforms = 1;
    // Expand the root and select the new node
    wb_set_state($wb->tree, $root, 1);
    wb_set_selected($wb->tree, $node);
}