aboutsummaryrefslogtreecommitdiffstats
path: root/src/mbdesktop_module.c
blob: 4c18b48da0f34117ab57491d6b700c2d1ffd780d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* SPDX-License-Identifier: GPL-2.0-or-later */

#include "mbdesktop_module.h"

MBDesktopItem *
mbdesktop_get_top_level_folder(MBDesktop     *mb)
{
  return mb->top_head_item;
}

MBDesktopItem*
mbdesktop_module_folder_create ( MBDesktop *mb,
				 char      *name,
				 char      *icon_name )
{
  MBDesktopItem* item_folder = NULL;

#ifdef MB_HAVE_PNG
  char *folder_prev_name = "mbfolderprev.png";
#else
  char *folder_prev_name = "mbfolderprev.xpm";
#endif

  item_folder
    = mbdesktop_item_new_with_params( mb, 
				      name,
				      icon_name,
				      NULL,
				      ITEM_TYPE_FOLDER
				      );

  mbdesktop_item_set_activate_callback (mb, item_folder, 
					mbdesktop_item_folder_activate_cb); 

  item_folder->item_child 
    = mbdesktop_item_new_with_params(mb,
				     "Back", 
				     folder_prev_name,
				     NULL,
				     ITEM_TYPE_PREVIOUS
				     );
  
  item_folder->item_child->item_parent = item_folder;
  

  mbdesktop_item_set_activate_callback (mb, item_folder->item_child, 
					mbdesktop_item_folder_prev_activate_cb); 

  /* XXXX Below should go in append ! 
  item_folder->item_parent = mb->top_head_item; 

  if (mb->top_head_item->item_child == NULL)
    mb->top_head_item->item_child = item_folder;
  else
    mbdesktop_items_prepend( mb, &mb->top_head_item->item_child, item_folder);
  */

  return item_folder; /* ->item_child; */
}

void
mbdesktop_module_set_userdata (MBDesktop             *mb, 
			       MBDesktopFolderModule *folder_module,
			       void                  *data)
{
  folder_module->user_data = data;
}

void *
mbdesktop_module_get_userdata_from_item (MBDesktop     *mb, 
					 MBDesktopItem *item)
{
  /* XXXX broke - see above
  if (item->module_handle)
    return (void *)item->module_handle->user_data;

  if (item->item_parent && item->item_parent->module_handle)
    return (void *)item->item_parent->module_handle->user_data;

  return NULL;
  */
  return NULL;
}


int
mbdesktop_module_get_register_type (MBDesktop *mb )
{
  return mb->type_register_cnt++;
}