private function create_model()
 {
     $store = new GtkListStore(GObject::TYPE_PHP_VALUE, GObject::TYPE_STRING);
     $ids = Gtk::stock_list_ids();
     sort($ids);
     foreach ($ids as $id) {
         $info = new StockItemInfo($id);
         $stock_item = Gtk::stock_lookup($id);
         if ($stock_item) {
             $info->stock_item = $stock_item;
         } else {
             $info->stock_item = array('', '', 0, 0, '');
         }
         $icon_set = GtkIconFactory::lookup_default($id);
         if ($icon_set) {
             $sizes = $icon_set->get_sizes();
             $size = $sizes[0];
             for ($i = 0; $i < count($sizes); $i++) {
                 if ($sizes[$i] == Gtk::ICON_SIZE_MENU) {
                     $size = Gtk::ICON_SIZE_MENU;
                     break;
                 }
             }
             $info->small_icon = $this->render_icon($info->stock_id, $size);
             if ($size != Gtk::ICON_SIZE_MENU) {
                 list($width, $height) = Gtk::icon_size_lookup(Gtk::ICON_SIZE_MENU);
                 $info->small_icon = $info->small_icon->scale_simple($width, $height, 'bilinear');
             }
         } else {
             $info->small_icon = null;
         }
         if ($info->stock_item[3] == 0) {
             $info->accel_str = '';
         } else {
             $info->accel_str = '<' . Gtk::accelerator_get_label($info->stock_item[3], $info->stock_item[2]) . '>';
         }
         $iter = $store->append();
         $store->set($iter, 0, $info, 1, $id);
     }
     return $store;
 }