Skip to content

Commit 89d5b44

Browse files
committed
Merge pull request #272 from swisnl/feature-icon-callback-option
Feature icon callback option
2 parents 093cb84 + 6d73e2f commit 89d5b44

16 files changed

+33
-20
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,15 @@ $.contextMenu is published under the [MIT license](http://www.opensource.org/lic
114114

115115
### Unreleased
116116

117-
* Nothing
117+
* Item icon can now be a callback to dynamically decide on icon class. - ([Issue #158](https://github.com/swisnl/jQuery-contextMenu/issues/158), [Issue #129](https://github.com/swisnl/jQuery-contextMenu/issues/129), [Issue #151](https://github.com/swisnl/jQuery-contextMenu/issues/151), [Issue #249](https://github.com/swisnl/jQuery-contextMenu/issues/249))
118118

119119
#### 1.7.0 (August 29th 2015) ###
120120

121121
* Touch support optimisations (by kccarter76)
122-
* changed .text to .html so there are no extra span's fixed #252
122+
* changed .text to .html so there are no extra span's fixed - ([Issue #252](https://github.com/swisnl/jQuery-contextMenu/issues/252))
123123
* added visibility callback to item definition
124124
* copy the HTML5 icon attribute when creating from HTML5 elements
125-
* growing menu when opening multiple times fixed #197
125+
* growing menu when opening multiple times fixed - ([Issue #197](https://github.com/swisnl/jQuery-contextMenu/issues/197))
126126
* fixed failure to run tests
127127

128128
### 1.6.8 (August 18th 2015) ###

demo.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ <h3 id="code">Example code: Simple Context Menu</h3>
6565
"paste": {name: "Paste", icon: "paste"},
6666
"delete": {name: "Delete", icon: "delete"},
6767
"sep1": "---------",
68-
"quit": {name: "Quit", icon: "quit"}
68+
"quit": {name: "Quit", icon: function(){
69+
return 'icon icon-quit';
70+
}}
6971
}
7072
});
7173

demo/accesskeys.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h3 id="code">Example code: Accesskeys</h3>
6767
"paste": {name: "Paste", icon: "paste", accesskey: "cool paste"},
6868
"delete": {name: "Delete", icon: "delete"},
6969
"sep1": "---------",
70-
"quit": {name: "Quit", icon: "quit"}
70+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7171
}
7272
});
7373
});

demo/accesskeys_test.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h3 id="code">Example code: Accesskeys</h3>
6767
"paste": {name: "Paste", icon: "paste", accesskey: "cool paste"},
6868
"delete": {name: "Delete", icon: "delete"},
6969
"sep1": "---------",
70-
"quit": {name: "Quit", icon: "quit"}
70+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7171
}
7272
});
7373
});

demo/callback.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ <h3 id="code">Example code: Command's action (callbacks)</h3>
7373
"paste": {name: "Paste", icon: "paste"},
7474
"delete": {name: "Delete", icon: "delete"},
7575
"sep1": "---------",
76-
"quit": {name: "Quit", icon: "quit"}
76+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7777
}
7878
});
7979
});

demo/callback_test.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ <h3 id="code">Example code: Command's action (callbacks)</h3>
7272
"paste": {name: "Paste", icon: "paste"},
7373
"delete": {name: "Delete", icon: "delete"},
7474
"sep1": "---------",
75-
"quit": {name: "Quit", icon: "quit"}
75+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7676
}
7777
});
7878
});

demo/disabled-menu.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ <h3 id="code">Example code: Disabled Context Menu</h3>
6666
"paste": {name: "Paste", icon: "paste"},
6767
"delete": {name: "Delete", icon: "delete"},
6868
"sep1": "---------",
69-
"quit": {name: "Quit", icon: "quit"}
69+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7070
}
7171
});
7272

demo/dynamic-create.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ <h3 id="code">Example code: Dynamic on-demand Menu</h3>
7070
"paste": {name: "Paste", icon: "paste"},
7171
"delete": {name: "Delete", icon: "delete"},
7272
"sep1": "---------",
73-
"quit": {name: "Quit", icon: "quit"}
73+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7474
}
7575
};
7676
}

demo/dynamic.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ <h3 id="code">Example code: Adding new Context Menu Triggers</h3>
7676
"paste": {name: "Paste", icon: "paste"},
7777
"delete": {name: "Delete", icon: "delete"},
7878
"sep1": "---------",
79-
"quit": {name: "Quit", icon: "quit"}
79+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
8080
}
8181
});
8282
});

demo/menu-title.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ <h3 id="code">Example code: Menu Title</h3>
113113
"paste": {name: "Paste", icon: "paste"},
114114
"delete": {name: "Delete", icon: "delete"},
115115
"sep1": "---------",
116-
"quit": {name: "Quit", icon: "quit"}
116+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
117117
}
118118
});
119119

@@ -132,7 +132,7 @@ <h3 id="code">Example code: Menu Title</h3>
132132
"paste": {name: "Paste", icon: "paste"},
133133
"delete": {name: "Delete", icon: "delete"},
134134
"sep1": "---------",
135-
"quit": {name: "Quit", icon: "quit"}
135+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
136136
}
137137
});
138138

@@ -151,7 +151,7 @@ <h3 id="code">Example code: Menu Title</h3>
151151
"paste": {name: "Paste", icon: "paste"},
152152
"delete": {name: "Delete", icon: "delete"},
153153
"sep1": "---------",
154-
"quit": {name: "Quit", icon: "quit"}
154+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
155155
}
156156
});
157157

demo/on-dom-element.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ <h3 id="code">Example code: Context Menu on DOM Element</h3>
8989
"paste": {name: "Paste", icon: "paste"},
9090
"delete": {name: "Delete", icon: "delete"},
9191
"sep1": "---------",
92-
"quit": {name: "Quit", icon: "quit"}
92+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
9393
}
9494
});
9595
});

demo/trigger-custom.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ <h3 id="code">Example code: Custom Activated Context Menu</h3>
7575
"paste": {name: "Paste", icon: "paste"},
7676
"delete": {name: "Delete", icon: "delete"},
7777
"sep1": "---------",
78-
"quit": {name: "Quit", icon: "quit"}
78+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7979
}
8080
});
8181
});

demo/trigger-hover-autohide.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ <h3 id="code">Example code: Hover Activated Context Menu With Autohide</h3>
6868
"paste": {name: "Paste", icon: "paste"},
6969
"delete": {name: "Delete", icon: "delete"},
7070
"sep1": "---------",
71-
"quit": {name: "Quit", icon: "quit"}
71+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7272
}
7373
});
7474
});

demo/trigger-hover.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h3 id="code">Example code: Hover Activated Context Menu</h3>
6767
"paste": {name: "Paste", icon: "paste"},
6868
"delete": {name: "Delete", icon: "delete"},
6969
"sep1": "---------",
70-
"quit": {name: "Quit", icon: "quit"}
70+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7171
}
7272
});
7373
});

demo/trigger-left-click.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h3 id="code">Example code: Left-Click Trigger</h3>
6767
"paste": {name: "Paste", icon: "paste"},
6868
"delete": {name: "Delete", icon: "delete"},
6969
"sep1": "---------",
70-
"quit": {name: "Quit", icon: "quit"}
70+
"quit": {name: "Quit", icon: function(){ return 'icon icon-quit'; }}
7171
}
7272
});
7373
});

src/jquery.contextMenu.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -1105,7 +1105,12 @@ var // currently active contextMenu trigger
11051105

11061106
// add icons
11071107
if (item.icon) {
1108-
$t.addClass("icon icon-" + item.icon);
1108+
if($.isFunction(item.icon)){
1109+
item._icon = item.icon.call(this, $t, key, item)
1110+
} else {
1111+
item._icon = "icon icon-" + item.icon;
1112+
}
1113+
$t.addClass(item._icon);
11091114
}
11101115
}
11111116

@@ -1186,6 +1191,12 @@ var // currently active contextMenu trigger
11861191

11871192
// dis- / enable item
11881193
$item[disabled ? 'addClass' : 'removeClass']('disabled');
1194+
1195+
if ($.isFunction(item.icon)) {
1196+
$item.removeClass(item._icon);
1197+
item._icon = item.icon.call(this, $trigger, key, item);
1198+
$item.addClass(item._icon);
1199+
}
11891200

11901201
if (item.type) {
11911202
// dis- / enable input elements

0 commit comments

Comments
 (0)