Ignore:
Timestamp:
Jan 14, 2007, 1:54:49 PM (19 years ago)
Author:
cinc
Message:

More object view methods and improvements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/desktop/class_c/wpfolder.c

    r189 r191  
    105105}
    106106
     107/*************** Local vars ************************************/
     108
     109static nomId WPFolderNomId;
     110
     111/***************************************************************/
     112
    107113#if 0
    108114static BOOL
     
    459465
    460466NOM_Scope gpointer NOMLINK impl_WPFolder_wpOpen(WPFolder* nomSelf, const PWPFolderWindow nomFolder,
    461                                                 const gulong ulView, const gpointer pParam,
    462                                                 CORBA_Environment *ev)
     467                                                const gulong ulView, const nomId nameSpaceId,
     468                                                const gpointer pParam, CORBA_Environment *ev)
    463469{
    464470  WPFolderData* nomThis=WPFolderGetData(nomSelf);
    465   g_message("%d %s", __LINE__, __FUNCTION__);
    466   switch(ulView)
     471  nomId nSpaceId=nameSpaceId;
     472  gulong ulV=ulView;
     473
     474  //  g_message("In %s: %d %d %d", __FUNCTION__, WPFolderNomId, nameSpaceId, ulView);
     475
     476  /* Special parameter representing a double click or "I just don't know" ;-) */
     477  if(OPEN_DEFAULT==ulView)
     478    ulV=WPObject_wpQueryDefaultView(nomSelf, &nSpaceId, NULLHANDLE);
     479
     480  /* We only handle items with in own name space */
     481  if(WPFolderNomId==nSpaceId)
    467482    {
    468     case OPEN_CONTENTS:
    469     case OPEN_DEFAULT:
    470       {
    471         PUSEITEM pui;
    472         ULONG ulError;
    473         WPFolderWindow * wpFldrWindow;
    474         gchar* pszPath;
    475         PPRIVFOLDERDATA priv;
    476         GtkListStore* gStore;
    477  
    478         pszPath=NOMPath_queryCString(WPFolder_wpQueryFileName(nomSelf, TRUE, NULLHANDLE), NULLHANDLE);
    479         g_message("%d %s, %s", __LINE__, __FUNCTION__, pszPath);
    480         WPFolder_wpPopulate(nomSelf, 0L, pszPath, FALSE,  NULLHANDLE);
    481 
    482 
    483         wpFldrWindow=WPFolder_wpCreateFolderWindow(nomSelf, NULLHANDLE);
    484         WPFolderWindow_wpSetWPObject(wpFldrWindow, (WPObject*)nomSelf, NULLHANDLE);
    485 
    486         /* Insert it into inuse list */
    487         pui=(PUSEITEM)WPFolder_wpAllocMem(nomSelf, sizeof(USEITEM)+sizeof(VIEWITEM), &ulError, ev);
    488         /* Fill the structures */
    489         pui->type=(gulong)USAGE_OPENVIEW;
    490         pui->wpObject=(PWPObject)nomSelf;
    491         pui++;
    492         ((VIEWITEM*)pui)->ulView=VIEW_CONTENTS;
    493         ((VIEWITEM*)pui)->nomWindow=(NOMWindow*)wpFldrWindow;
    494         pui--;
     483      switch(ulV)
     484        {
     485        case OPEN_CONTENTS:
     486          {
     487            PUSEITEM pui;
     488            ULONG ulError;
     489            WPFolderWindow * wpFldrWindow;
     490            gchar* pszPath;
     491            PPRIVFOLDERDATA priv;
     492            GtkListStore* gStore;
     493           
     494            pszPath=NOMPath_queryCString(WPFolder_wpQueryFileName(nomSelf, TRUE, NULLHANDLE), NULLHANDLE);
     495            g_message("%d %s, %s", __LINE__, __FUNCTION__, pszPath);
     496            WPFolder_wpPopulate(nomSelf, 0L, pszPath, FALSE,  NULLHANDLE);
     497           
     498           
     499            wpFldrWindow=WPFolder_wpCreateFolderWindow(nomSelf, NULLHANDLE);
     500            WPFolderWindow_wpSetWPObject(wpFldrWindow, (WPObject*)nomSelf, NULLHANDLE);
     501           
     502            /* Insert it into inuse list */
     503            pui=(PUSEITEM)WPFolder_wpAllocMem(nomSelf, sizeof(USEITEM)+sizeof(VIEWITEM), &ulError, ev);
     504            /* Fill the structures */
     505            pui->type=(gulong)USAGE_OPENVIEW;
     506            pui->wpObject=(PWPObject)nomSelf;
     507            pui++;
     508            ((VIEWITEM*)pui)->ulView=OPEN_CONTENTS;
     509            ((VIEWITEM*)pui)->nomWindow=(NOMWindow*)wpFldrWindow;
     510            ((VIEWITEM*)pui)->nameSpaceId=WPFolderNomId;
     511            pui--;
    495512#warning !!!!! Folder window must be inserted into inuse list !!!!!
    496         /* Make sure the view item is removed when the window is closed */
    497         g_signal_connect(G_OBJECT(NOMWindow_queryWindowHandle((NOMWindow*)wpFldrWindow, NULLHANDLE)),"delete-event",
    498                          G_CALLBACK(tempWPWindowDeleteHandler), (gpointer) pui);
    499         WPFolder_wpAddToObjUseList(nomSelf, pui, NULLHANDLE);
    500 
    501         /* Now create a folder store and insert icons into the window */
    502         priv=_privFolderData;
    503         gStore=priv->gstoreFldContents;
    504 
    505         if(!gStore)
    506           {
    507             /* Create a store holding the folder contents */
    508             gStore=fldr_CreateStore();
    509             g_return_val_if_fail(gStore!=NULLHANDLE, FALSE);
    510             priv->gstoreFldContents=gStore;
    511           }
    512 
    513         /* Fill our store */
    514         if(gStore)
    515           fldr_fillStore(nomSelf, gStore, pszPath);
    516         else
    517           return FALSE;
    518        
    519         gtk_icon_view_set_model(GTK_ICON_VIEW (priv->gtkIconView), GTK_TREE_MODEL (priv->gstoreFldContents));
    520        
    521         /* We now set which model columns that correspond to the text
    522          * and pixbuf of each item
    523          */
    524         gtk_icon_view_set_text_column (GTK_ICON_VIEW (priv->gtkIconView), COL_DISPLAY_NAME);
    525         gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (priv->gtkIconView), COL_PIXBUF);
    526         gtk_icon_view_set_item_width (GTK_ICON_VIEW (priv->gtkIconView), 100);
    527        
    528         g_object_unref (gStore);
    529        
    530         return wpFldrWindow;
    531       }/* default */
    532     default:
    533       break;
    534     }/* switch */
    535 
    536   return WPFolder_wpOpen_parent(nomSelf, nomFolder, ulView, pParam, ev);
     513            /* Make sure the view item is removed when the window is closed */
     514            g_signal_connect(G_OBJECT(NOMWindow_queryWindowHandle((NOMWindow*)wpFldrWindow, NULLHANDLE)),"delete-event",
     515                             G_CALLBACK(tempWPWindowDeleteHandler), (gpointer) pui);
     516            WPFolder_wpAddToObjUseList(nomSelf, pui, NULLHANDLE);
     517           
     518            /* Now create a folder store and insert icons into the window */
     519            priv=_privFolderData;
     520            gStore=priv->gstoreFldContents;
     521           
     522            if(!gStore)
     523              {
     524                /* Create a store holding the folder contents */
     525                gStore=fldr_CreateStore();
     526                g_return_val_if_fail(gStore!=NULLHANDLE, FALSE);
     527                priv->gstoreFldContents=gStore;
     528              }
     529           
     530            /* Fill our store */
     531            if(gStore)
     532              fldr_fillStore(nomSelf, gStore, pszPath);
     533            else
     534              return FALSE;
     535           
     536            gtk_icon_view_set_model(GTK_ICON_VIEW (priv->gtkIconView), GTK_TREE_MODEL (priv->gstoreFldContents));
     537           
     538            /* We now set which model columns that correspond to the text
     539             * and pixbuf of each item
     540             */
     541            gtk_icon_view_set_text_column (GTK_ICON_VIEW (priv->gtkIconView), COL_DISPLAY_NAME);
     542            gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (priv->gtkIconView), COL_PIXBUF);
     543            gtk_icon_view_set_item_width (GTK_ICON_VIEW (priv->gtkIconView), 100);
     544           
     545            g_object_unref (gStore);
     546           
     547            return wpFldrWindow;
     548          }/* default */
     549        default:
     550          break;
     551        }/* switch */
     552    }
     553
     554  return WPFolder_wpOpen_parent(nomSelf, nomFolder, ulView, nameSpaceId, pParam, ev);
    537555}
    538556
     
    559577}
    560578
     579NOM_Scope gulong NOMLINK impl_WPFolder_wpQueryDefaultView(WPFolder* nomSelf, const pnomId pNameSpaceId,
     580                                                          CORBA_Environment *ev)
     581{
     582  *pNameSpaceId=WPFolderNomId;
     583  return OPEN_CONTENTS;
     584}
     585
     586
    561587static void
    562588itemActivated (GtkIconView *widget,
     
    582608                         -1);
    583609      g_message("%s: %s", __FUNCTION__, wpObject->mtab->nomClassName);
    584       WPObject_wpOpen(wpObject, pWindow, OPEN_CONTENTS, NULL, NULL);
     610      /*      WPObject_wpOpen(wpObject, pWindow, OPEN_CONTENTS, NULL, NULL); */
     611      WPObject_wpViewObject(wpObject, pWindow, OPEN_DEFAULT, 0, NULLHANDLE, NULL);
    585612    }
    586613}
     
    607634                    G_CALLBACK (itemActivated), nomSelf);
    608635
    609   gtk_window_set_title (GTK_WINDOW (WPFolderWindow_queryWindowHandle(wpFldrWindow, NULLHANDLE)),
    610                         NOMString_queryCString(WPFolder_wpQueryTitle(nomSelf, NULLHANDLE), NULLHANDLE));
     636  WPFolderWindow_wpSetWindowTitle(wpFldrWindow, WPFolder_wpQueryTitle(nomSelf, NULLHANDLE), NULLHANDLE);
     637
    611638  /* Show the new window */
    612639  WPFolderWindow_show(wpFldrWindow, ev);
     
    675702  WPFolder_wpInitData_parent((WPObject*)nomSelf,  ev);
    676703
     704  /* Get our unique class ID. We need it for example when inserting menu items to
     705     specify the namespace. We query it here because getting a GQuark from a string
     706     is rather time consuming. The result is saved in a var for later use. */
     707  WPFolderNomId=nomIdFromString("WPFolder");//g_quark_from_string("WPFolder");
     708
    677709  nomPrintf("    Entering %s with nomSelf: 0x%x. nomSelf is: %s.\n",
    678710            __FUNCTION__, nomSelf , nomSelf->mtab->nomClassName);
Note: See TracChangeset for help on using the changeset viewer.